Java doppelte Einträge aus ArrayList löschen
Posted: März 26th, 2010 | Filed under: Programmieren | Tags: ArrayList, ArrayList doppelte löschen, ArrayList Duplikate löschen, Duplikate, HashSet, Java, löschen, removeDuplicatedEntries | 3 Comments »Beim schreiben eines Textfilters habe ich letzt eine kleine Funktion benötigt. Ich wollte gleiche Einträge in einer ArrayList
public void removeDuplicatedEntries(ArrayList<String> arrayList) { |
Hallo:)
wie kann ich eigentlich doppelte Einträge in Java löschen? Beide!
zB. Array –> A,A,B,C
Ausgabe: B,C
Hallo Seyma, hier eine mögliche Lösung:
/**
* Entfernt doppelte Einträge aus der übergebenen Liste.
* Es werden alle Objekte entfernt, die zu Duplikaten geführt haben.
*
* @param list eine Liste mit doppelten Einträgen
* @return die um alle doppelten Einträge bereinigte Liste
*/
public static List removeAllDuplicate(List list) {
Set duplicateSet = new HashSet<>();
for(int i = 0, j = list.size(); i < j; i++) { //komplette Liste durchlaufen
Object o1 = list.get(i); //Objekt an Index-Position holen
for (int x = i + 1; x < j; x++) { //Folgeeinträge durchlaufen
Object o2 = list.get(x);
if (o1.equals(o2)) { //Bei Objektidentität deren Indizes im Set ablegen
duplicateSet.add(i);
duplicateSet.add(x);
}
}
}
List<Integer> indexList = new ArrayList<>(duplicateSet);
Collections.sort(indexList); //Liste nach Indizes sortieren
Collections.reverse(indexList); //größte Indizes zuerst in der Liste
for(int i : indexList) {
list.remove(i); //Objekte aus Liste "von hinten nach vorne" löschen
}
return list;
}
Danke jetzt kann ich alle doppelten Objekte entfernen, hat mir sehr geholfen.
Danke