Java doppelte Einträge aus ArrayList löschen

Posted: März 26th, 2010 | Filed under: Programmieren | Tags: , , , , , , , | 2 Comments »

Beim schreiben eines Textfilters habe ich letzt eine kleine Funktion benötigt. Ich wollte gleiche Einträge in einer ArrayList herrauslöschen. Folgende Funktion löscht alle Duplikate.

  public void removeDuplicatedEntries(ArrayList<String> arrayList) {
    HashSet<String> hashSet = new HashSet<String>(arrayList);
    arrayList.clear();
    arrayList.addAll(hashSet);
  }

2 Comments on “Java doppelte Einträge aus ArrayList löschen”

  1. 1 Seyma said at 14:58 on Juli 14th, 2017:

    Hallo:)
    wie kann ich eigentlich doppelte Einträge in Java löschen? Beide!
    zB. Array –> A,A,B,C

    Ausgabe: B,C

  2. 2 L-ectron-X said at 09:23 on Februar 1st, 2018:

    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;

    }


Leave a Reply