Mehrdimensionale ArrayList mischen

Hallo, wie man eine normale, eindimensionale List, ArrayList, LinkedList zufällig mischen lässt, weiß ich.
( Collections.shuffle(arrayList); )

Wie geht das Ganze nun aber mit einer mehrdimensionalen ArrayList, sodass alle elemente wirklich zufällig über 2 dimensionen verteilt sind? (damit meine ich nicht nur die reihenfolge der sublists zu vertauschen, sondern auch die elemente innerhalb der sublist. Dabei sollen die elemente innerhalb der sublist auch außerhalb dieser "vermischt" werden können.

Ich hoffe wenn ich versuche das problem grafisch darzustellen, ist klarer was gemeint ist:

ich habe folgende Grafik:
Code:
1,2,3
4,5,6
7,8,9
folgendes wäre eine akzeptable lösung:
Code:
3,5,9
2,4,7,
1,8,6

folgendes wäre KEINE akzeptable lösung:
Code:
1,3,2
5,4,6,
9,8,7

bisher hab ich dazu nichts gefunden.
ich danke euch für eure mühe :)
 
ach.. wieso komm ich da selber nicht drauf...^^
so einfach kann das gehen :cool:
alles klar.
Ich danke dir


____

zu früh gefreut, das wäre dann doch etwas zu einfach^^
geht so nicht, man dreht sich dabei nur im kreis:(
 
Zuletzt bearbeitet:
X

Xyz1

Gast
Iteriere über die sublisten, mische sie und mische am Ende noch mal die komplette Liste
Das macht keinen Sinn.

Nana, ich habe ja gelernt, nur sagen das etwas falsch ist können kritikresitente nicht ab, deswegen: Für jedes Elem berechnest du einfach zweimal ne zufällige Zahl.
 
@DerWissende danke dir für die rasche antwort.

aber das muss doch auch anders gehen, ohne zufallszahlen generieren zu müssen.

Die ArrayList zuerst in eine eindimensionale umzuwandeln würde ja auch gehen, doch schön ist was anderes..
 

Javinner

Top Contributor
newProgrammer hat gesagt.:
aber das muss doch auch anders gehen, ohne zufallszahlen generieren zu müssen
Erstelle doch eine Methode, welche ein zweidimensionales Array liefert. In dieser erstellst du erst einmal ein neues Array, genau so groß, wie das alte, und prüfst dann beim zufälligen befühlen(Math.random)
, ob der Platz bereits besetzt ist, und wenn ja, soll die Math dir solange eine neue Position geben, bis eine freie Stelle gefunden wurde. Wenn du dann fertig bist, lieferst das neue Array nach außen.
 

Robat

Top Contributor
Stimmt da hab ich nicht richtig gelesen. Habe nicht gesehen, dass die Elemente auch unter den Sublisten getauscht werden sollen.
Wie wäre es mit dieser Variante? (Nutz allerdings Java 8 mit Lambdas - weiß nicht wie deine Anforderungen sind. )
Java:
List<List<Integer>> list = Arrays.asList(
    Arrays.asList(1, 2, 3),
    Arrays.asList(4, 5, 6),
    Arrays.asList(7, 8, 9)
);

List<Integer> mergedList = list.stream()
    .flatMap(List::stream)
    .collect(Collectors.toList());

Collections.shuffle(mergedList);

final int sublistLen = 3;
List<List<Integer>> finalList = IntStream.rangeClosed(0, 2)
    .mapToObj(i -> mergedList.subList(i * sublistLen, i * sublistLen + sublistLen))
    .collect(Collectors.toList());
 

Harry Kane

Top Contributor
Nutz allerdings Java 8 mit Lambdas - weiß nicht wie deine Anforderungen sind
Ob mit oder ohne lambda, der Ansatz sieht auf jeden Fall zumindest richtig aus:
- Alle Unterlisten zu einer großen Liste zusammenfügen.
- Die große Liste shuffeln
- Den Inhalt der geshuffelten großen Liste wieder auf Unterlisten verteilen. Falls die Unterlisten vor der Opersation ungleich lang waren, müsste das natürlich berücksichtigt werden.
 

mrBrown

Super-Moderator
Mitarbeiter
Was sollen denn diese verschachtelten Listen darstellen?

Das sieht zumindest auf den ersten Blick etwas komisch aus und ließe sich vermutlich eleganter lösen.
 
X

Xyz1

Gast
Ich verbinde mit Listen in Listen eigentlich immer ene Liste mit Unterlisten unterschiedlicher Länge - sonst hätte man ja Arrays in Listen...

Wenn die erste Liste 1 Elem hat und die zweite Liste 100. Dann wird das 1 Elem der 1 Liste signifikant öfter "ausgetauscht" als die anderen 100 Elem der 2 Liste...

Die Wahrscheinlichkeit für das 1. Elem: 0,5
Die Wahrscheinlichkeit für Elem 2 bis 101: 0,005

Ich hoffe jeder erkennt das.

Falls diese Listen so gestaltet sind, dann erst alle Elemente sammeln, dann mischen und dann sie wieder in die Struktur zurückschreiben.

Das Mischen ist auch nicht trivial. Java macht es richtig. Aber ich davon abraten, das selber zu schreiben, sondern: https://www.tutorialspoint.com/java/util/collections_shuffle.htm

schönen Tag
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Mehrdimensionale Abfrage Allgemeine Java-Themen 15
F mehrdimensionale Arrays Allgemeine Java-Themen 4
E ArrayIndexOutOfBounds - mehrdimensionale Arrays Allgemeine Java-Themen 6
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
D Mehrdimensionale HashMaps Allgemeine Java-Themen 6
S Mehrdimensionale Arrays Vergleichen Allgemeine Java-Themen 2
B Mehrdimensionale Array Allgemeine Java-Themen 7
M ArrayList oder LinkedList Allgemeine Java-Themen 10
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
R ArrayList Allgemeine Java-Themen 4
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
J ArrayList, ganze Zeilen löschen oder überspringen Allgemeine Java-Themen 4
L ArrayList sortieren Allgemeine Java-Themen 2
C ArrayList Problem Allgemeine Java-Themen 3
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
S Best Practices CopyConstrutor mit ArrayList Allgemeine Java-Themen 1
S ArrayList Design Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
X Output von ArrayList Allgemeine Java-Themen 3
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
MiMa ArrayList sortieren?? Allgemeine Java-Themen 5
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
D ArrayList Indexlänge ändern Allgemeine Java-Themen 2
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
MiMa ArrayList Rückgabewerte aus einer Funktion Allgemeine Java-Themen 15
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
T Collections ArrayList Sortieren Allgemeine Java-Themen 4
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
GreenTeaYT Verständnisprobleme zur Arraylist Allgemeine Java-Themen 1
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
K ArrayList sortieren Allgemeine Java-Themen 16
A Bestimmte Inhalte aus ArrayList 1 in ArrayList 2 kopieren Allgemeine Java-Themen 6
S Mehrdimensionales ArrayList ins HashSet Allgemeine Java-Themen 10
C ArrayList Allgemeine Java-Themen 8
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
K Array in ArrayList Allgemeine Java-Themen 16
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
Paul15 Arraylist 2D Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
Neumi5694 Datentypen ArrayList vs TreeMap Allgemeine Java-Themen 6
F ArrayList Allgemeine Java-Themen 11
X ArrayList will nicht so wie ich will. Hilfe Allgemeine Java-Themen 8
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
Z Elemente einer ArrayList von rechts wegnehmen Allgemeine Java-Themen 5
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
R ArrayList und HashMap Allgemeine Java-Themen 7
T ArrayList zeilenumbruch entfernen Allgemeine Java-Themen 13
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
E ArrayList Anzahl der gleichen Elemente Allgemeine Java-Themen 4
Doopy ArrayList plötzlich leer Allgemeine Java-Themen 2
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
L ArrayList Inhaltstyp. Allgemeine Java-Themen 5
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
J Arraylist speichern und laden? Allgemeine Java-Themen 5
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
M ArrayList<String> Frage Allgemeine Java-Themen 7
O ArrayList kaputt?! Allgemeine Java-Themen 5
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
Bananabert Abstract ArrayList Allgemeine Java-Themen 4
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
O ArrayList - Serialisierungs-Problem Allgemeine Java-Themen 11
M JTable + ArrayList Allgemeine Java-Themen 3
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
S arraylist nach n. Eintrag numerisch Sortiren Allgemeine Java-Themen 5
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
R Threads korrekte Synchronisation bei Vector und ArrayList Allgemeine Java-Themen 6
M Kovariante Rückgabewerte mit ArrayList Allgemeine Java-Themen 3
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
Maxim6394 Problem mit ArrayList Allgemeine Java-Themen 5
E Berechnung in Arraylist Allgemeine Java-Themen 10
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8
V Fork Join bei Arraylist Allgemeine Java-Themen 6
H Fehler in Arraylist Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben