Sortowanie String'ów

Sortowanie String'ów
marta1995
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 5 lat
  • Postów:155
0

Witam

Mam w notatniku kilka stringów

Szła
Dzieweczka
Do
Zielonego
Laseczka
Napotkała
Myśliweczka

Teraz chciałabym wyświetlać te Stringi (np w jakieś kontrolce - nie ważne) w zapodanej kolejności np:

Do
Zielonego

chciałabym mieć na 2 pierwszych pozycjach

Laseczka
Zielonego

Na dwóch ostatnich

pozostałe w kolejności alfabetycznej pomiędzy ustalonymi pierwszymi i ustalonymi końcowymi Stringami.

Jak napisać kod i zorganizować plik (jeśli trzeba) abym w miarę elastycznie mogła to definiować.
Ustalam, że ten i ten na początku, ten i ten na końcu, pozostałe np. nie istotne. Innym razem definiuje kolejność inaczej.
Ustalanie kolejności nie musi być z poziomu GUI(użytkownika). Dzieje się to z poziomu kodu, czyli pliku z logią, lub notatniku - tak aby było optymalnie.

Możecie coś zasugerować? byłabym wdzięczna :)
Chodzi mi o rozwiązanie nie koniecznie proste, ale eleganckie i nie "brużdżące" niepotrzebnie w kodzie :)

Wibowit
  • Rejestracja:około 20 lat
  • Ostatnio:około godziny
0
  1. Do pomocniczej ArrayList wrzucasz tylko te elementy które mają być posortowane.
  2. Sortujesz pomocniczą listę standardową metodą.
  3. Do głównej listy wstawiasz ustalone stringi + posortowane stringi (jest metoda addAll w ArrayLiście).

"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
bogdans
Punkt 2 jest błędny, nie należy sortować standardową metodą.
bogdans
Post poniżej (polskie litery i rozróżnianie dużych i małych liter).
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Standardowe sortowanie nie jest alfabetyczne (jest leksykograficzne).

Kopiuj
Collections.sort(listaDoPosortowania,Collator.getInstance(Locale.getDefault()));
//albo jeśli program będzie uruchamiany np. w Zimbabwe
Collections.sort(listaDoPosortowania,Collator.getInstance(new Locale("PL")));

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 2x, ostatnio: bogdans
marta1995
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 5 lat
  • Postów:155
0

szczerze, to nie mam pojęcia jak mają się powyższe rozwiązania do mojego problemu...?
Gdzie tu ustalam priorytet z jakim ją być traktowane wybrane stringi? gdzie ustalam, które stringi mają być na samym końcu?

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
1

Tworzysz trzy listy: "głowa", "ogon" i część środkowa do posortowania. Sortujesz część środkową i sklejasz.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.