0

我有 3 个列表

final List<Locais> list1 = new ArrayList<>();
final List<Locais> list2 = new ArrayList<>();
final List<Locais> finallist = new ArrayList<>();

将 list1 中的值添加到 finallist

 for (Locais locais : list1) {
            String name = locais.getName();
            finallist.add(locais);
                        }

现在我想将 list2 与决赛名单进行比较。如果 list2 中的值在 finallist 中不存在,则将其添加到 finallist。我怎样才能做到这一点?

4

2 回答 2

0

你可以用一种干净的方式来做,创建一个名为差异的列表。用所有元素初始化它list2,然后删除它拥有的所有元素finallist,你可以使用removeAllList API 中的方法来完成。这使它包含 和 之间的差异list2finallist然后遍历差异并将它们推入finallist.

List<String> differences = new ArrayList<>(list2);
differences.removeAll(finallist);
for(Locais locais : differences){
   finallist.add(locais)
}

有关 removeAll 检查的更多信息:https ://docs.oracle.com/javase/8/docs/api/java/util/List.html#removeAll-java.util.Collection-

于 2020-11-18T21:51:39.390 回答
-1

为 list2 中的每个元素运行增强的 for 循环。在 for 循环中有一个 if 。如果 !finallist.contains(locais) 那么 finallist.add(locais)

希望这有助于萌芽

于 2020-11-18T21:04:31.080 回答