一千萬個為什麽

搜索

java.util.Set.addAll()方法中的問題


I have a java.util.Set cities and I need to add cities to this set in 2 ways:

  • 添加個別城市(借助 cities.add(city)方法調用)

  • 通過向此集添加另一組城市(借助 cities.addAll(anotherCitiesSet)方法調用)

但第二種方法的問題是我不知道 anotherCitiesSet 中是否有任何重復的城市。

我想在嘗試在 cities 集中輸入重復條目時進行一些處理。

最佳答案

復制 cities 集(比如說, citiesCopy ),然後調用 citiesCopy.retainAll(anotherCitiesSet) - citiesCopy中的結果集將包含兩個集合的交集,從而允許您輕松查看哪些城市是重復的,如果有的話。

或者,遍歷第二組並手動添加每個元素,每次檢查 add()的返回值:

for(java.util.Set c : anotherCitiesSet) {
    if(!cities.add(c)) {
       //c was a duplicate, do something?
    }
}

轉載註明原文: java.util.Set.addAll()方法中的問題

猜你喜歡