Sammlung ohne Duplikate und in zufälliger Reihenfolge in Java

Wie es aussieht, kann ich nicht verwenden Sie entweder eine ArrayList, noch ein Satz:

  • Set<> - Ich kann vermeiden Sie Duplikate mit einem Satz, aber kein shuffle-option //Collections.shuffle(List<?> list)

  • ArrayList<> - Ich kann shuffle zu randomise der Liste, aber Duplikate erlaubt sind.

Könnte ich mit einem Set und konvertieren diese in eine ArrayList (oder Umgekehrt), um die Duplikate. Alternativ, loop-through-set randomise der Elemente. Aber ich bin auf der Suche nach etwas effizienter.

  • Man könnte prüfen, ob das Element bereits in der ArrayList, bevor Sie es: myList.enthält(myItem); Diese überprüfung sollte nur O(n).
  • etwas effizienter > sagen Sie so, weil Sie (a) es versucht, und (b) geschlossen haben, durch geeignete benchmarking, dass dies ist ein erheblicher Engpass in Ihrer Anwendung? Wenn nicht, nicht vorzeitig optimieren und zu schreiben, je nachdem, welche version liest die meisten klar (wahrscheinlich konvertieren arraylist).
InformationsquelleAutor BLuEGoD | 2013-02-15
Schreibe einen Kommentar