如何将一维数组添加到二维数组?

时间:2012-12-13 00:20:30

标签: java arrays jtable

抱歉第一次在这里提问。

如果我有这样的2D数组:

int[][] array2d = {{1, 2, 3}, {6, 7, 8}};

如何添加多个这样的1D数组:

int[] array1d = {3, 2, 1};
int[] array1d2 = {8, 7, 6};

这样我原来的2d数组就变成了这个:

int[][] array2d = {{1, 2, 3}, {6, 7, 8}, {3, 2, 1}, {8, 7, 6}};

注意:这是用于在按下按钮时将信息从JTextfield添加到JTable中。因此,2d数组将用作表中的数据。如果有更好的方法来实现这一点,我也会很感激。 =)

2 个答案:

答案 0 :(得分:5)

你的阵列:

int[][] array2d = {{1, 2, 3}, {6, 7, 8}};

的大小是固定的,因此您必须创建一个具有足够容量来保存新值的副本:

int[][] newArray = Arrays.copyOf(array2d, 4);
newArray[2] = array1d;
newArray[3] = array1d2;

要将数据添加到JTable,必须首先将数组转换为非基本类型,例如Integer数组。一种选择是使用Apache Commons:

model.addRow(ArrayUtils.toObject(array));

表示阵列的每一行。

答案 1 :(得分:1)

数组是固定大小的,所以要附加它你需要调整数组的大小,看看java.util.Arrays。

然后设置数组位置

arra2d[index] = array1d;

你有没有理由不使用

TableModel.addRow(dataArray);