2016-06-27 4 views
1

Ich muss eine ArrayList sortieren. Ich kann einen Komparator verwenden und die Vergleichsfunktion zum Sortieren überschreiben. Oder ich kann eine Merge-Sortierfunktion selbst schreiben und die ArrayList sortieren.Was ist besser zum Sortieren einer ArrayList von Objekten, Verwenden der Komparator oder Merge sort?

Ich habe irgendwo gelesen, dass eine Komparator Sortierung Bubble-Sort-Algorithmus verwendet. Da Merge Sort weniger komplex ist, verwende ich Merge Sort über einen Komparator, der einfacher zu implementieren ist.

+1

Wenn Sie Objekte sortieren, verwendet Java TimSort, die eine Mischung aus Mergesort und Insertion Sortierung ist. – Sid

+0

Ich versuche ArrayList > zu sortieren. Das Sortieren verwendet TimSort? –

+0

@RaviShankar https://docs.oracle.com/javase/8/docs/api/java/util/List.html#sort-java.util.Comparator- – assylias

Antwort

3

Verwenden Sie einen Komparator, um die gesamte Anordnung der Objekte in der ArrayList festzulegen, und verwenden Sie Collection.sort (Liste list, Comparator c), um die Liste zu sortieren. Quoting the Java Documentation Für die obige Sortiermethode verwendet es einen iterativen Mergesort-Algorithmus, der aus Tim Peters Liste nach python (TimSort) sortiert ist.