Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge

liamprog

Mitglied
Java:
import java.util.Random;

public class Inventory {
    public static void main (String[] args) {
        
        String[] items = {"Karte", "Monsterball", "Monsterdex", "Fahrrad", "VMo3", "Hyperheiler", "Amrenabeere", "Top-Genesung", "Angel", "Top-Schutz"};
        
        Random random = new Random();
        
        for (int i = 0; i < items.length; i++){
            System.out.println(items[i]);
        }
    }
}

Die Liste mit den Items werden mir untereinander ausgegeben, aber nicht in zufälliger Reihenfolge. Kann mir jemand helfen, wie ich random mit einbeziehe?
 
Naja... du erzeugst einfach ein java.util.Random Objekt, aber verwendest es halt nirgends. Nur, weil man irgendwo ein java.util.Random Objekt erzeugt, passieren nicht automatisch danach nur noch zufällige Dinge.

Du willst vermutlich eine zufällige Permutation der Elemente in der Liste ausgeben.
Hierfür gibt es ganz exakt die Methode Collections.shuffle(), um eine zufällige Permutation der Elemente in einer Liste zu generieren.

Beispiel:
Java:
String[] items = {"Karte", "Monsterball", "Monsterdex", "Fahrrad", "VMo3", "Hyperheiler", "Amrenabeere", "Top-Genesung", "Angel", "Top-Schutz"};
List<String> itemsAsList = Arrays.asList(items);
Collections.shuffle(itemsAsList);
System.out.println(itemsAsList);
 
Zeile 4 kann so nicht funktionieren, die toString() Methode einer Liste liefert nicht eine Auflistung aller Elemente. Zeile 2 und 3 lösen allerdings die Aufgabe.
Die umsortierten Elemente stehen danach auch in der Variable items, da Arrays.asList(...) keine Kopie anlegt, sondern die daraus resultierende Liste direkt auf das Array verweist.

Die Klasse Random ist ein Zufalsgenerator, bietet Methoden, um zufällige double oder int Werte zu generieren. Damit die Liste zufällig zu ordnen, ist recht aufwendig (geht schon, das wäre aber etwas kompliziert).
 
Zuletzt bearbeitet:

Zurück
Oben