将新列添加到 matrix/2d 数组
Adding a new column to a matrix/2d array
我知道数组在 Java 中应该有固定数量的元素,但除此之外,数组在这个应用程序中为我提供了很好的服务,所以我不希望使用不同的数据结构。
我的问题似乎是向二维数组添加新列。到目前为止,我有:
String[][] tempArray = new String[array.length][array.length+1];
然后我将常规数组 array
的所有元素放入一个额外的长列 tempArray
。
我似乎无法做的是在某些 index
.
的索引处添加一个新列
我该怎么做?谢谢!
数组本质上不是动态的,所以据我所知,你不能向它添加列。作为一种潜在的解决方法,您可以做的是创建另一个包含一个额外列的数组,并将所有值复制到它。
int index = 7;
String[][] array = new String[5][10];
String[][] tempArray = Arrays.copyOf(array, array.length + 1); // New array with row size of old array + 1
tempArray[array.length] = new String[array[index].length]; // Initializing the new row
for(i=tempArray.length; i>=index; i--)
{
tempArray[i] = tempArray[i-1];
}
tempArray[index] = new String[array[index].length];
我知道您不喜欢使用任何其他数据结构,但如果您改变主意,请考虑使用 ArrayList。
我知道数组在 Java 中应该有固定数量的元素,但除此之外,数组在这个应用程序中为我提供了很好的服务,所以我不希望使用不同的数据结构。
我的问题似乎是向二维数组添加新列。到目前为止,我有:
String[][] tempArray = new String[array.length][array.length+1];
然后我将常规数组 array
的所有元素放入一个额外的长列 tempArray
。
我似乎无法做的是在某些 index
.
我该怎么做?谢谢!
数组本质上不是动态的,所以据我所知,你不能向它添加列。作为一种潜在的解决方法,您可以做的是创建另一个包含一个额外列的数组,并将所有值复制到它。
int index = 7;
String[][] array = new String[5][10];
String[][] tempArray = Arrays.copyOf(array, array.length + 1); // New array with row size of old array + 1
tempArray[array.length] = new String[array[index].length]; // Initializing the new row
for(i=tempArray.length; i>=index; i--)
{
tempArray[i] = tempArray[i-1];
}
tempArray[index] = new String[array[index].length];
我知道您不喜欢使用任何其他数据结构,但如果您改变主意,请考虑使用 ArrayList。