gpt4 book ai didi

java - 如何减少二维数组

转载 作者:行者123 更新时间:2023-12-01 17:39:52 26 4
gpt4 key购买 nike

我有一个二维数组,让我们这样说:

2   0   8   9
3 0 -1 20
13 12 17 18
1 2 3 4
2 0 7 9

如何创建一个减少第二行第三列的数组?

2   0    9
13 12 18
1 2 4
2 0 9

最佳答案

删除数组中的行和列是昂贵的操作,因为您需要移动内容,但这些方法可以满足您的需求:

static int[][] removeRow(int[][] data, int r) {
int[][] ret = new int[data.length - 1][];
System.arraycopy(data, 0, ret, 0, r);
System.arraycopy(data, r+1, ret, r, data.length - r - 1);
return ret;
}

static int[][] removeColumn(int[][] data, int c) {
for (int r = 0; r < data.length; r++) {
int[] row = new int[data[r].length - 1];
System.arraycopy(data[r], 0, row, 0, c);
System.arraycopy(data[r], c+1, row, c, data[r].length - c - 1);
data[r] = row;
}
return data;
}

不过,您可能想研究其他允许更便宜的删除的数据结构,即双向链表。例如,参见Dancing Links .

关于java - 如何减少二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2398888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com