我有一个包含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?
如果有人可以帮我解决这个问题,我们将不胜感激。
答案 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")
}