【发布时间】:2016-06-03 12:03:01
【问题描述】:
我想将数据副本添加到我的列表中,但是当我使用 .add 时,它会添加引用而不是副本。我会尽力解释我的意思。
List<List<String>> formattedTempMatches = new ArrayList<>();
ArrayList<String> rowFormattedMatches = new ArrayList<>();
rowFormattedMatches.add(matchesArray[0]);
rowFormattedMatches.add(matchesArray[1]);
rowFormattedMatches.add(matchesArray[2]);
formattedTempMatches.add(rowFormattedMatches);
//rowFormattedMatches.clear();
rowFormattedMatches.add(matchesArray[3]);
rowFormattedMatches.add(matchesArray[4]);
rowFormattedMatches.add(matchesArray[5]);
formattedTempMatches.add(rowFormattedMatches);
我在循环之外编写了我的代码,试图更好地解释自己。我想将 3 个元素添加到 ArrayList(其中元素来自普通数组),然后将该 ArrayList 添加到列表列表中。当 ArrayList 添加到列表中时,我想清除它并用另外 3 个元素重新填充它,然后将其添加到列表的下一个索引中。问题是一旦我清除它,数据就会从列表中删除。如果我不清除它,列表在每个索引处有 6 个元素,而应该只有 3 个。我该怎么办?
对我可能令人困惑的解释深表歉意。
【问题讨论】:
-
尝试使用
formattedTempMatches.add((ArrayList)rowFormattedMatches.clone());
标签: java arrays list arraylist