gpt4 book ai didi

java - keepAll 更改最后一个元素

转载 作者:行者123 更新时间:2023-12-01 15:24:52 25 4
gpt4 key购买 nike

List<Left> resultList = lists.iterator().next();
for (Iterator iterator = lists.iterator(); iterator.hasNext();) {
List<Left> list = (List<Left>) iterator.next();
resultList.retainAll(list);
}

/*for (Left left : resultList) {
System.out.println(left.getData());
}*/

for (Left left : mLeft) {
ArrayList<Left> mTempList = left.getArray();
for (Iterator iterator = mTempList.iterator(); iterator.hasNext();) {
Left left2 = (Left) iterator.next();
System.out.println(left2.getData());
}
}

我试图找出常见元素,我的原始列表正在更改。我的意思是,当我打印列表时,只有最后一个元素发生更改。任何建议。

最佳答案

resultList被分配给集合中的第一个元素 lists就在顶部。

在第 4 行执行 retainAll反对resultList不改变什么resultList被分配给 - 它仍然指向 lists 中的第一个对象.

您可以考虑创建一个新的 List<Left>对象来检查公共(public)元素,就在开头,而不是您声明的方式 resultList :

List<Left> resultList = new List<Left>();
resultList.addAll ((List<Left>) lists.iterator().next());
...

然后,当您打印出元素时,您可能希望在最终循环中使用 resultList。

请注意,您仍然假设 lists至少有一个元素 - 如果它为空,您将得到一个异常。

关于java - keepAll 更改最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10309360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com