Java: Liste zufällig mischen / shufflen

Java ist eine sehr coole Programmiersprache und bietet einem Programmierer zahlreiche Möglichkeiten sein Problem zu lösen. Jedoch denkt man oft zu kompliziert und verliert das Wesentliche aus den Augen. Mein heutiges Problem ist das zufällige Mischen einer beliebigen Liste.
Wer jetzt an eine For each-Schleife oder an (Math.random() * myList.size()) + 1 denkt, sollte unbedingt diesen Artikel lesen! Ich präsentiere die Klasse java.util.Collections

 

Java List anlegen und befüllen

LinkedList<String> psList = new LinkedList<String>();
// oder
//ArrayList<String>  psList = new ArrayList<String>();
		   
psList.add("Java");
psList.add("C++");
psList.add("AS 3");
psList.add("PHP");

 

Die Liste mischen

// List/Map/Set durcheinander mischen
Collections.shuffle(psList);
//Ausgabe
//PHP
//Java
//AS 3
//C++

 

Die Liste sortieren

// Liste/Map/Set sortieren (alphabetisch)
Collections.sort(psList);


//Ausgabe:
//AS 3
//C++
//Java
//PHP

 

Die Liste/Map/Set typsicher konvertieren

// erstellt eine Liste/Map/Set die typesafe ist (Alle Items den gleichen Typ haben)
// Wichtig bei Sets oder Maps!
Collection<String> erg1 = Collections.checkedCollection(psList, String.class);
List<String> erg2 = Collections.checkedList(psList, String.class);

 

Die Liste ausgeben

for (String item : psList) {
	System.out.println(item);
}

 

Java API

Jeder Java-Entwickler sollte die Java API kennen und nutzen!
(JDK 6) http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html

 

Gibt es das Gleiche für Array’s?

Wer die Klasse java.util.Collections nicht kennt, sollte sich noch diesen Artikel zur Klasse java.util.Arrays durchlesen! Außerdem kann die Klasse Collections auch für die Ableitungen Map und Set verwendet werden.

 

Quellen und weitere Links



Kommentar verfassen