我試着收集到一個列表中的所有從我的數據庫具有相同的名稱,以便在位置,即時通訊使用該做的事:如何在我的數據庫中按名稱過濾位置?
public static List<Location> searchRepe(List<Location>ls){
List<Location>res=new ArrayList<Location>();
for(Location l:ls){
ls.remove(l);
if(ls.stream().anyMatch(x>x.getProvinceName().equals(l.getProvinceName()))){
res.add(l);}
ls.add(l);
}
return res;
}
錯誤:異常線程「main」 java.util.ConcurrentModificationException
我先刪除列表的位置,然後檢查是否有另一個具有相同名稱的位置。在檢查了位置名稱是否在列表中後,我將它添加到我的res列表中。在任何情況下,我會始終保持原始列表相同,因爲在檢查後,我將元素讀入列表。我知道錯誤是由於我在每次迭代中刪除並添加的,但如果在每次迭代中刪除並添加相同的元素,則列表的大小將始終相同。
有人能告訴我一個更好的方法來做到這一點?如果有可能使用java8
第方法,其中基於事件的計數的所有元素的偉大工程提供了我想要的清單與所有具有位置他們的省名是共同的。第二種方法只是根據其省份名稱收集出現多次的地點。 非常感謝你Neonailol –