java.util.Set.addAll()方法中的问题

Yat*_*oel 5 java set

我有一个java.util.Set<City> cities,我需要以两种方式将城市添加到此集合中:

  • 通过添加单个城市(在cities.add(city)方法调用的帮助下)

  • 通过向此集添加另一组城市(在cities.addAll(anotherCitiesSet)方法调用的帮助下)

但第二种方法的问题是,我不知道是否有任何重复的城市anotherCitiesSet.

我想在尝试在cities集合中输入重复条目时进行一些处理.

Amb*_*ber 10

复制cities集合(比方说citiesCopy),然后调用citiesCopy.retainAll(anotherCitiesSet)- 结果集合citiesCopy将包含两个集合的交集,从而使您可以轻松查看哪些城市是重复的,如果有的话.

或者,循环遍历第二组并手动添加每个元素,检查add()每次返回值:

for(java.util.Set<City> c : anotherCitiesSet) {
    if(!cities.add(c)) {
        // c was a duplicate, do something?
    }
}
Run Code Online (Sandbox Code Playgroud)