当前位置: 首页 > 知识库问答 >
问题:

如何在java中从2d数组中删除元素

阴宏爽
2023-03-14

我想在创建以下2d阵列后删除一个元素。它应该是数组的最后一个元素。

public static void main(String[] args) {
        int i;
        int row = 2;
        int col = 2;
        String[][] queue = new String[row][col];
        Scanner scanner = new Scanner(System.in);
        String[][] queue = new String[row][col];
        Scanner scanner = new Scanner(System.in);
        for (row = 0; row < queue.length; row++) { // Loop through the rows in the 2D array.
            for (col = 0; col < queue[row].length; col++) { 
                System.out.println("Enter the name");{
                    queue[row][col] = scanner.next();
                }

                }
            }
        for (i = 0; i < row; i++) {
            for (int j = 0; j < col; j++) {
                System.out.print(queue[i][j] + " ");

共有2个答案

慕弘深
2023-03-14

您不能从数组中删除单元格。但是您可以通过简单地将最后一行替换为除最后一个元素之外的所有元素的新副本来有效地删除它。

queue[row-1] = Arrays.copyOf(queue[row-1], queue[row-1].length-1);

您可能想尝试像这样创建数组。然后您不需要删除或复制任何东西。

  • 用行数定义数组
  • 然后将行数组分别分配给“2D”数组。对于大量行,这可以在循环中完成,每行的维度为int[]数组
int rows = 2;
String[][] queue = new String[rows][];
queue[0] = new String[2];
queue[1] = new String[1];
Scanner scanner = new Scanner(System.in);
for (rows = 0; rows < queue.length; rows++) { // Loop through the rows in the 2D array.
    for (int col = 0; col < queue[rows].length; col++) { 
        System.out.println("Enter the name");{
            queue[rows][col] = scanner.next();
        }
    }
}
for (String[] row : queue) {
    System.out.println(Arrays.toString(row));
}

闾丘京
2023-03-14

这个问题很尴尬。

  • 您不能从2D静态数组中删除元素-您可以清空该数组元素。这就像队列[row-1][col-1] = "" 一样简单。
  • 如果您希望能够按照您描述的方式删除元素,您的最佳选择是使用动态数组,例如ArrayList。
  • 请注意,虽然Java支持每行列数不同的2D数组,因此您也可以创建一个新数组,复制除最后一行中最后一列之外的所有内容,然后将其放回原始数组中。

 类似资料:
  • 问题内容: 在下面的随机数组中: 您能否告诉我如何删除特定位置的元素。例如,如何删除? 我了解这里仅用于列表类型DS。 问题答案: 很简单,只需在列表项上弹出即可。

  • 所以,我有两个多维数组。 数组值示例: 这就是我想要的 我想从组合中获得所有唯一的数组,并用它填充唯一的组合。 我尝试了这个函数,但它只填充了5个数组,真奇怪!

  • 问题内容: 我有一个数组例如: 谁能告诉我如何从数组中删除一个元素。例如,我要删除项目“ b”,以使数组如下所示: 我找不到解决办法。到目前为止,我在这里发现的内容不适用于我:( 问题答案: 您不能从数组中删除元素。Java数组的大小是在分配数组时确定的,不能更改。您能做的最好的事情是: 在相关位置分配给数组;例如 这给您带来了处理值所在数组中的“孔”的问题。(在某些情况下,这不是问题……但是在大

  • 问题内容: 如何使用Apple的新语言Swift取消设置/删除数组中的元素? 这是一些代码: 如何从数组中删除元素? 问题答案: 该关键字是声明不能改变的常量。如果要修改变量,则应改用,例如: 一个使原始集合保持不变的非变异替代方法是用于创建一个新集合,而无需删除想要删除的元素,例如:

  • 问题内容: 有什么快速(好看的)方法可以从Java中的数组中删除元素? 问题答案: 你可以使用的。

  • 问题内容: var arr = [1,2,3,5,6]; 删除第一个元素 我想删除数组的第一个元素,使其变为: 删除第二个元素 扩展这个问题,如果我想删除数组的第二个元素以使其变为: 问题答案: 要获得更灵活的解决方案,请使用该功能。它允许您根据索引值删除数组中的任何项目: