Im Versuch, in eine Liste zu sammeln alle Standorte von meinem db, die die gleichen Namen zu tun, um haben, dass Im dies mit:Wie kann ich Standorte nach Namen in meiner Datenbank filtern?
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;
}
ERROR: Exception in thread „main“ java.util.ConcurrentModificationException
Ich entferne zuerst den Standort der Liste und überprüfe dann, ob es einen anderen Ort mit demselben Namen gibt. Nachdem ich überprüft habe, ob der Name des Ortes in der Liste ist, füge ich ihn meiner Res List hinzu. In jedem Fall werde ich immer die ursprüngliche Liste behalten, weil ich nach der Überprüfung das Element in der Liste gelesen habe. Ich weiß, dass der Fehler verursacht wird, weil ich jede Iteration entferne und hinzufüge, aber wenn ich in jeder Iteration entferne und dann dasselbe Element hinzufüge, wird die Größe der Liste immer gleich sein.
Könnte mir jemand einen besseren Weg sagen, dies zu tun? Wenn es möglich ist java8 mit
Die erste Methode funktioniert super vorausgesetzt, dass ich eine Liste mit allen Standorten wollten, haben ihr Provinzname gemeinsam. Bei der zweiten Methode werden nur die Standorte gesammelt, die gemäß ihrem provinceName mehr als einmal angezeigt werden. Vielen Dank Neonailol –