我有这个 list :
private List<Set<Address>> scanList;
因此,如您所见,我的列表包含多个扫描。 每次扫描后,我都会在列表中添加新集合。
所有扫描完成后,我想只取每组中出现的地址并将其放入:
private List<Address> addresses;
Set/TreeSet/HashSet 中是否已经存在类似的东西?
编辑:回答后,retainAll() 是正确的方法。谢谢你。 以下是出处:
Set<Address> addressCross = scanList.get(0);
for (int i = 1; i < scanList.size(); i++) {
addressCross.retainAll(scanList.get(i));
}
for (Address address : addressCross) {
addresses.add(address);
}
最佳答案
您可以使用 retainAll(Collection<?> c)
, 看看here
附注:该操作称为intersection。
然后将其转换为 List
您可以使用方法addAll(Collection<? extends E> c)
这应该适用于各种容器。
例如:
ArrayList<Address> list = new ArrayList<Address>();
list.addAll(yourSet);
关于java - 如何相交多个集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4009205/