gpt4 book ai didi

java - 从二维数组中删除java中的列

转载 作者:太空宇宙 更新时间:2023-11-04 11:34:33 24 4
gpt4 key购买 nike

我正在尝试编写一个java方法,它将接受一个二维数组并将内容添加到一个新的二维数组中,以指定行。所以如果我有二维数组

1234
1234
1234

我想删除第三列,我想得到

124
124
124

问题是我不知道如何让它发挥作用。我能想到的最好的方法是以下方法。

private static int[][] removeCol(int [][] array, int colRemove)
{
int row = array.length;
int col = array[0].length;

int [][] newArray = new int[row][col];

for(int i = 0; i < row; i++)
{
for(int j = 0; j < col; j++)
{
if(j != colRemove)
{
newArray[i][j] = array[i][j];
}
}
}

return newEx;
}

现在这个方法将返回这个

1204
1204
1204

但如果我能得到我想要的结果,效果会更好。有办法做到这一点还是我坚持当前的结果?

最佳答案

您可以使用一个变量 currColumn 来指示当前列的位置,结果数组将比原始数组少一列。所以根据这个你可以改变你的代码。

private static int[][] removeCol(int [][] array, int colRemove)
{
int row = array.length;
int col = array[0].length;

int [][] newArray = new int[row][col-1]; //new Array will have one column less


for(int i = 0; i < row; i++)
{
for(int j = 0,currColumn=0; j < col; j++)
{
if(j != colRemove)
{
newArray[i][currColumn++] = array[i][j];
}
}
}

return newEx;
}

另一种更好的方法是使用动态结构,如 ArrayList 。所以这里你需要有ArrayList的数组,然后你可以用 remove() 删除元素方法。如果您想更新任何元素,则可以使用 set()方法。

关于java - 从二维数组中删除java中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43424324/

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