Methoden Zufallsstrings

PsykoPunkZ

Mitglied
Hallo zusammen,


ich wollte wissen wie das funktioniert um verschiedene Strings im Zufallsprinzip zu einander zuzuordnen. Hier ein Beispiel:

Strings: Alex, Manuel, Chris, Benedikt, Steffi, Lara

Jeder name soll einen anderen Namen "zugeteilt" bekommen.

z.B.
"Alex" schenkt "Lara"
"Manuel" schenkt "Chris"
"Chris" schenkt "Alex"
"Steffi" schenkt "Manuel"
"Benedikt" schenkt "Steffi"
"Lara" schenkt "Benedikt"


Hatte überlegt eine Array zu bauen aber weiter weis ich nicht und gefunden habe ich konkret auch nichts.

Kann mir jemand sagen ob es dazu eine bestimmte Methode gibt?
Kenne .Random() aber ist das nicht nur für Ints bzw Zahlen?


Danke und Grüße Psyko;)
 

faetzminator

Gesperrter Benutzer
Mach dir eine [japi]ArrayList[/japi] aus den Namen, verwende [c]Collections.shuffle()[/c] und nimm jeweils [c]index[/c] -> [c]index + 1[/c] als Verbindung. Zuletzt natürlich [c]index[/c] -> [c]0[/c]. D.h. auch mit [c](index + 1) % size[/c] möglich.
 
T

Trolllllll

Gast
Java:
List myList=new ArrayList();
myList.add("Alex");
myList.add("Manuel");
myList.add("Chris");
myList.add("Benedikt");
myList.shuffle();
for (int i=0;i<myList.length();i=i+2;){
   System.out.println(myList.get(i)+" schenkt "+myList.get(i+1));
}
 
B

bone2

Gast
Mit von random generierten int kannst du einfach auf das array über den index zugreifen.
 

faetzminator

Gesperrter Benutzer
Hier noch Trollllllls Trollversuch als funktionierendes Programm:
Java:
List<String> names = new ArrayList<String>();
names.add("Alex");
names.add("Manuel");
names.add("Chris");
names.add("Benedikt");
Collections.shuffle(names);
for (int i = 0;i < names.size(); i++){
    System.out.println(names.get(i) + " schenkt " + names.get((i + 1) % names.size()));
}[/Java]
 

PsykoPunkZ

Mitglied
Ich wollte grad fragen ob da nicht <String> noch dazu gehört xD

super vielen Dank an alle :D:applaus:


Kannst du mir erklären was genau hier passiert? Insbesondere der %-Teil
names.get((i + 1) % names.size()));
 
Zuletzt bearbeitet:
B

bone2

Gast
Java:
 System.out.println((i + 1) % names.size())
Stichwort modulo
 

Oben