删除二维数组的每个内部数组的 0 索引

Remove 0 Index of every inner array of 2D Array

我试图解决这个问题,但我没有进一步解决。 我有一个 2D int 数组,想像这样删除每个索引的第一个索引: {{1,2}, {2,3,4}} -> {{2}, {3,4}}

我处理了这段代码,但它没有任何改变。

int[][] arr = {{1,2},{2,3,4}};

    for(int[] x : arr) {
        int[] newArr = new int[x.length -1];
        for (int i = 1; i < x.length; i++) {
            newArr[i-1] = x[i];
        }

        x = newArr;
    }

感谢您的帮助。

你确定它不起作用吗?我 运行 这个对我有用。也许你在末尾将错误的数组分配给了你想要它去的数组?确保在循环后将你关心的任何数组分配给 newArr。

您可以按照以下方式进行:

public class Main {
    public static void main(String[] args) {
        int[][] arr = { { 1, 2 }, { 2, 3, 4 } };

        for (int i = 0; i < arr.length; i++) {
            int[] newArr = new int[arr[i].length - 1];
            for (int j = 1; j < arr[i].length; j++) {
                newArr[j - 1] = arr[i][j];
            }
            arr[i] = newArr;
        }

        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
}

输出:

2 
3 4 

不要使用增强的 for 循环,而使用 Arrays.copyOfRange(...):

int[][] arr = {{1,2},{2,3,4}};
for (int i = 0; i < arr.length; i++)
    arr[i] = Arrays.copyOfRange(arr[i], 1, arr[i].length);
System.out.println(Arrays.deepToString(arr));

输出

[[2], [3, 4]]