moin,
ich hab ein String Array mit ca. 52 Element und möchte diese Elemente durch mischen...
hätte jmd eine Idee oder Lösung für mein Problem
danke ich voraus
Array in Java "mischen"
![]() Anmeldungsdatum: Beiträge: 69 |
|
Anmeldungsdatum: Beiträge: 19 Wohnort: Schwarzwald |
nimm halt 2 Integer, z.B. x und y, die mit Zufallswerten belegen, die natuerlich im Bereich liegen (also 0 bis 51 bei 52 Elementen), Und dann einfach inhalte tauschen , also temp = array[x]; array[x] = array[y]; array[y] = temp; und das wird in einer Schleife 100 mal wiederhollt. Vielleicht gibts ne bessere Loesung. |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 69 |
hab ich mir auch schon gedacht, aber kann man das nicht einfacher über Math.random() oder über die klasse Random() lösen? |
Anmeldungsdatum: Beiträge: 19 Wohnort: Schwarzwald |
Random wirst du ja fuer die zwei Zufallszshlen brauchen... |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 69 |
ja das ist mir klar... aber das ich direkt das array mischen kann! oder denk ich wieder zu einfach für java? |
Anmeldungsdatum: Beiträge: 19 Wohnort: Schwarzwald |
Ich hab hier leider kein Java, schau mal, java.util.Collections.shuffle() ob du mit dem Zeug was anfangen kannst. |
Anmeldungsdatum: Beiträge: 6172 |
Zufallszahlen mit java.util.Random erzeugen. Als Beispiel ein Array mit 32 Elementen. Du fängst mit dem Element an Position 0 an und vertauscht es mit einem Element an einer zufälligen Position von 0 bis 31 . Anschließend nimmst Du das Element an Position 1 und vertauscht es mit einem Element an einer zufälligen Positon 1 bis 31. u.s.w. So könnten die Methoden aussehen: // vertauschen |
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 69 |
alles klar danke, ich schau mal rein! p.s. is ja wie ein live-chat hier 😉 |
![]() Anmeldungsdatum: Beiträge: 479 |
uiuiui...so schwer is das mit java? ar = [1,2,3,4,5,6,7,8,9] srand ar = ar.sort_by { rand } # => z.B. [3, 2, 6, 1, 8, 7, 9, 5, 4]
|
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 69 |
deswegen frag ich ja, ich kann mir nicht vorstellen das dass so schwer ist... |
Anmeldungsdatum: Beiträge: 6172 |
Für kleine Anwendungen Java nutzen ist wie mit Kanonen auf Spatzen schießen. Das ist richtig. |
Ikhayateam
![]() Anmeldungsdatum: Beiträge: 9522 Wohnort: Lüneburg |
BadBoy hat geschrieben:
Hallo BadBoy, ja in Java ist einiges schwieriger als in Ruby - deshalb benutze ich auch ganz gern mal Ruby um nicht so viel "tun" zu müssen. 😉 Lieben Gruss |
![]() Anmeldungsdatum: Beiträge: 17618 Wohnort: Berlin |
Wenn Du statt eines Arrays eine ArrayList zu verwenden bereit bist, nimm dies: import java.util.*; /** StringShuffle @author Stefan Wagner @date Mi 18. Jun 12:31:48 CEST 2008 */ public class StringShuffle { public StringShuffle (String sanz) { int anz = Integer.parseInt (sanz); List <String> list = new ArrayList <String> (); for (int i = 0; i < anz; ++i) { list.add (new String ("" + i)); } Collections.shuffle (list); for (String s : list) System.out.println (s); } public static void main (String args[]) { String param = "52"; if (args.length == 1) { param = args[0]; } new StringShuffle (param); } }
Mit find_java_method.sh shuffle
|
(Themenstarter)
![]() Anmeldungsdatum: Beiträge: 69 |
@ user |
![]() Anmeldungsdatum: Beiträge: 17618 Wohnort: Berlin |
Osiris86 hat geschrieben:
Ich verstehe die Frage nicht. Mittels list.add ("something"); - ist doch ein komplett lauffähiges Beispiel. Wo befüllst Du denn das Array? |