删除二维数组的每个内部数组的 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]]
我试图解决这个问题,但我没有进一步解决。 我有一个 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]]