覆盖二维arraylist中的行

时间:2011-01-04 05:31:28

标签: java

我有一个包含4个cols的2D arraylist。我想在这个arraylist中添加第5列。 第四个col是一组值,根据这些值将结果添加为第5列。 如果第1行的第4个元素为0,则第5个列将包含结果字符串“Failure”

使用1D arraylist获取2D arraylist的所有元素并添加第5个元素然后使用1D arraylist项覆盖2D是否可以 要么 有没有办法可以使用index()和indexOF()直接附加到2D arraylist?

如果有人可以帮我解决这个问题,我们将不胜感激。

2 个答案:

答案 0 :(得分:0)

Java不支持一流的多维数组。二维数组是'数组数组'。 Java也不支持调整数组大小。

假设您已经在String [] []表中获得了数据:

String[][] table = /* init from somewhere */;

for (int i = 0; i < table.length; i++) {
   String[] row = table[i];
   assert (row.length == 4);
   String[] newRow = Arrays.copyOf(row, 5);
   assert (newRow.length == 5);
   newRow[4] = "Failure";
   table[i] = newRow;
}

这与您添加列的方式大致相同。 请注意,Arrays.copyOf()比手动复制数组的内容要好得多。

(注意:运行此示例时,请使用-ea标志到JVM以便断言)

答案 1 :(得分:0)

您应该能够使用ArrayList #add

for(ArrayList<Object> a: in aa){
    a.add(a.get(3) == 0 ? "failure" : "success")
}