Etwas wie sort() / sorted() in JAVA-Collections?

HPL

Aktives Mitglied
Mich würde mal interessieren, ob es etwas vergleichbares wie die list.sort() bzw. sorted(list)-Methode auch für JAVA-Collections gibt. Habe in der Doku nix gefunden.

Welche Strategie sollte ich wählen, sollte ich einmal auf die Idee kommen, etwa die Elemente einer ArrayList alphabetisch zu sortieren?
 
Vielen herzlichen Dank für Eure Antworten, ich hab das jetzt zwar probiert:...


Code:
public class MainClass {

	public static void main(String[] args){

		ArrayList eineliste = new ArrayList();
		
		eineliste.add("Nun");
		eineliste.add("aber");
		
		Collections.sort(eineliste);
		
		ArrayList andereliste = new ArrayList(eineliste);
		

	for(int i=0; i<andereliste.size();i++){
		
		String out = (String) andereliste.get(i);
		
		System.out.println(out);
		
		}
	}
	
}

... aber die Ausgabe ist immer noch "Nun", dann "aber". Ich dachte, die beiden Elemente werden herumgedreht, sodass ich aber Nun bekomme.

Wenn es heißt, Collections.sort() "sorts the elements in their ascending natural order", dann müsste doch bei der Ausgabe erst das Aber, dann das nun ausgegeben werden, oder?
 
Ist schon richtig, nur dass die "natural order" eine andere ist 😉

Java:
		List<String> liste = new ArrayList<String>();
		liste.add("n");
		liste.add("N");
		liste.add("A");
		liste.add("a");
		liste.add("z");
		liste.add("Z");
		
		Collections.sort(liste);
		System.out.println(liste);
Führt zu:
Code:
[A, N, Z, a, n, z]

Wenn du eine andere Sortierung haben willst, dann musst du nen Comparator übergeben.
Beispielsweise sowas:
Java:
new Comparator<String>() {
			@Override
			public int compare(String s1, String s2) {
				return s1.toLowerCase().compareTo(s2.toLowerCase());
			}
		};
 

Zurück
Oben