W Javie mam Set
i chcę przekształcić go w posortowany List
. Czy w java.util.Collections
pakiecie jest metoda , która zrobi to za mnie?
java
sorting
collections
Jeremy Stein
źródło
źródło
Util
Klasa to ta, która zawieraasSortedList()
metodę, którą napisałem. Innymi słowy, sam piszeszUtil
klasę i umieszczasz w niej kod.Posortowany zestaw:
lub:
źródło
Set
?new TreeSet
akceptujeCollection
s, a nie tylkoSet
s. Nie każdy, kto czyta tę odpowiedź, będzie używał znakuSet
, mimo że to właśnie dotyczy pierwotnego pytania.… Powinien jednak załatwić sprawę. W razie potrzeby dodaj do smaku leki generyczne.
źródło
Comparable
i przesłonićcompareTo
metodę.Oto, jak możesz to zrobić ze strumieniami Java 8:
lub z niestandardowym komparatorem:
źródło
Zawsze można bezpiecznie używać interfejsu Comparator lub Comparable do zapewnienia implementacji sortowania (jeśli obiekt nie jest klasą String lub Wrapper dla pierwotnych typów danych). Jako przykład implementacji komparatora do sortowania pracowników na podstawie nazwiska
Komparator jest przydatny, gdy musisz mieć inny algorytm sortowania dla tego samego obiektu (powiedz nazwę emp., Wynagrodzenie emp. Itp.). Sortowanie w trybie pojedynczym można zaimplementować za pomocą interfejsu Comparable w wymaganym obiekcie.
źródło
Nie ma jednej metody, aby to zrobić. Użyj tego:
źródło
Możesz przekonwertować zestaw na plik
ArrayList
, w którym możesz sortowaćArrayList
usingCollections.sort(List)
.Oto kod:
źródło
gdzie zestaw oryginałów = zestaw nieposortowany i lista = lista do zwrócenia
źródło
@Jeremy Stein Chciałem zaimplementować ten sam kod. Chciałem również posortować zestaw do listy, więc zamiast używać Set, przekonwertowałem ustawione wartości na List i posortowałem tę listę według jednej ze zmiennych. Ten kod mi pomógł,
źródło
Używam tego kodu, który wydaje mi się bardziej praktyczny niż zaakceptowana odpowiedź powyżej:
źródło