OOP Aus Vektor zufällig einen Eintrag wählen und in Array[][] schreiben

carsamba55

Mitglied
Hallo,

ich habe eine ArrayList<Integer> alle, und einen int[j] stundenplan.
Ich möchte nun einen zufällig gewählten Eintrag aus alle nehmen, und diesen in einen ebenfalls zufällig gewählten freien Slot in stundenplan einfügen.
Das soll mit allen Einträgen aus alle geschehen (in stundenplan ist mehr als genug Platz). Danach soll jeder Slot in stundenplan der nicht mit einem Eintrag aus alle belegt wurde (also leer ist), mit dem Wert "-1" belegt werden. Voila.

Java:
Random r = new Random();
        for (int i = 0; i < stundenplan.length; i++) {
            if (alle.size() > 0) {
            for (int j = 0; j < stundenplan[i].length; j++) {
                int gr = alle.size();
                int pos = r.nextInt(gr);
                stundenplan[i][j] = alle.get(pos);
                alle.remove(pos);
            }
        }

Ich habe es bereits probiert, damit sind nicht alle oben stehenden Bedingungen erfüllt. Aber so bekomme ich für das "gr" in Zeile 6 den Fehler, dass n positiv sein muss. Das gr wird aber niemals negativ.
Randbemerkung: Ich entferne aus alle jeden Eintrag der genommen wurde, damit ich diesen nicht nochmal nehme. Kann man das anders lösen, dass jeder Eintrag weiterhin nur 1 mal genommen wird, aber die Einträge in allenicht gelöscht werden müssen?
 

Landei

Top Contributor
Du kannst mit Collections.shuffle eine Liste durchmischen lassen, danach kannst du z.B. einfach immer mit remove(0) "von vorne" wegnehmen.
 

carsamba55

Mitglied
Ah ich ***, ich habe den Fehler übersehen, if (alle.size() >= 1) war in der falschen for-schleife:

Java:
Random r = new Random();
        for (int i = 0; i < stundenplan.length; i++) {
            
            for (int j = 0; j < stundenplan[i].length; j++) {
                if (alle.size() >= 1) {
                int gr = alle.size();
                System.out.println("gr: "+gr);
                int pos = r.nextInt(gr);
                stundenplan[i][j] = alle.get(pos);
                alle.remove(pos);
            }
        }
        }

Nächster Punkt wäre nun, dass Füllen von zufällig gewählten Slots in stundenplan, weil er füllt jetzt der Reihe nach auf...
 
Zuletzt bearbeitet:

Landei

Top Contributor
Irgendwie so (wenn man davon ausgeht, dass dein Array auch ordentlich "rechteckig" ist)
Java:
stundenplan[r.nextInt(stundenplan.length)][r.nextInt(stundenplan[0].length)] = ...
 

carsamba55

Mitglied
Habs jetzt einfacher gelöst...

Java:
        //Differenz aus Größe des 2D-Arrays und den Elementen
        //In die Differenzslots wird -1 aufgefüllt
        int diff = timeslots*anzRaeume-alle.size();

        //Erweitert alle-Array um die leeren Slots und füllt sie mit -1
        for (int i = 0; i < diff; i++) {
            alle.add(-1);
        }

        //Mischt die alle-Array zufällig
        Collections.shuffle(alle);

        //Füllt den Stundenplan mit den zufälligen Werten aus alle-Array
        for (int i = 0; i < stundenplan.length; i++) {
            for (int j = 0; j < stundenplan[i].length; j++) {
              stundenplan[i][j] = alle.get(0);
              alle.remove(0);
            }
        }

So hab ich nen zufälligen Stundenplan, alle Lücken wurden wie gewünscht mit -1 gefüllt, und eine Kopie der "alle" Liste liegt bei :)
 

Landei

Top Contributor
So ist kürzer. Proktischerweise gibt remove() den gerade entfernten Wert zurück.
Java:
        for (int i = 0; i < stundenplan.length; i++) {
            for (int j = 0; j < stundenplan[i].length; j++) {
              stundenplan[i][j] = alle.remove(0);
            }
        }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Vektor vs List Java Basics - Anfänger-Themen 4
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
O Matrix, Vektor Java Basics - Anfänger-Themen 9
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
U Ist diese Methode zur Matrix Vektor Multiplikation korrekt ? Java Basics - Anfänger-Themen 5
S Variablen Vektor zur Berechnung verwenden Java Basics - Anfänger-Themen 4
E Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 7
M transposen Vektor transformieren Java Basics - Anfänger-Themen 8
M Vektor Rechnung Java Basics - Anfänger-Themen 6
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
R Matrix-Vektor-Multiplikation Java Basics - Anfänger-Themen 13
B Vektor addieren Java Basics - Anfänger-Themen 4
F Funktion eines JButton in einen Vektor verlagern Java Basics - Anfänger-Themen 4
Z Matrix mit Vektor multiplizieren Java Basics - Anfänger-Themen 13
P Vektor im R3 drehen? Java Basics - Anfänger-Themen 14
M Map mit Vektor: Element hinzufügen Java Basics - Anfänger-Themen 21
A vektor bearbeiten?? Java Basics - Anfänger-Themen 9
V Position in einem Vektor Java Basics - Anfänger-Themen 3
N Vektor mit eigener Datenstruktur sortieren Java Basics - Anfänger-Themen 20
A Wie greif ich auf Elemente eines Arrays in einem Vektor zu? Java Basics - Anfänger-Themen 6
D Array? ArrayList? Vektor? ...? Java Basics - Anfänger-Themen 6
Z Summe von Vektor-Elementen Java Basics - Anfänger-Themen 5
S Variable über den Vektor bestimmen Java Basics - Anfänger-Themen 20
J klasse vektor addition Java Basics - Anfänger-Themen 10
M Vektor Klasse Problem Java Basics - Anfänger-Themen 12
M Reihenfolge von Objekten im Vektor Java Basics - Anfänger-Themen 3
G Vektor auslesen und als int Variable casten Java Basics - Anfänger-Themen 4
G Mothoden von Objekten in Vektor aufrufen Java Basics - Anfänger-Themen 4
F ComboBox im Vektor auslesen, Vektor<JComboBox> Java Basics - Anfänger-Themen 6
G Probleme mit Datenstrukturen (Vektor, HashMap) Java Basics - Anfänger-Themen 5
T Koordinaten eines Vektor übergeben Java Basics - Anfänger-Themen 21
J Vektor in Vektor speichern? Java Basics - Anfänger-Themen 10
J Vektor null setzen Java Basics - Anfänger-Themen 10
R Vektor in verketteter Liste Java Basics - Anfänger-Themen 14
J Vektor + auf Elemente zugreifen funktioniert nicht Java Basics - Anfänger-Themen 11
H Vektor auslesen und durchsuchen Java Basics - Anfänger-Themen 4
G Vektor Java Basics - Anfänger-Themen 1
C "null" Element Vektor abfragen Java Basics - Anfänger-Themen 7
C vektor erschaffen Java Basics - Anfänger-Themen 2
C Ein Element aus Mehrdimensionalem Vektor lesen Java Basics - Anfänger-Themen 2
L Vektor befüllen? Java Basics - Anfänger-Themen 3
G Doppelte (Paar) Werte in einem Vektor finden Java Basics - Anfänger-Themen 6
S kartesischer Vektor im n-dimensionalen Raum. Java Basics - Anfänger-Themen 7
G Objekte in einen Vektor speichern Java Basics - Anfänger-Themen 4
M Vektor, gefüllt mit Objekten einer selbstdefinierten Klasse Java Basics - Anfänger-Themen 4
C checken ob ein Vektor leer ist Java Basics - Anfänger-Themen 3
J tast-Eingabe_(Vektor)Skalar-produkt Java Basics - Anfänger-Themen 19
G elemente in einem vektor nach ihren eigenschaften sortieren Java Basics - Anfänger-Themen 2
G Problem clone und Vektor Java Basics - Anfänger-Themen 4
M Vektor sortieren Java Basics - Anfänger-Themen 7
P Vektor toString? Java Basics - Anfänger-Themen 2
T Hashtable und Vektor Java Basics - Anfänger-Themen 3
I einlaggern von Objekten in ein Vektor Java Basics - Anfänger-Themen 10
G Vektor Java Basics - Anfänger-Themen 3
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
J Ein Wort aus einer Datei zufällig ermitteln Java Basics - Anfänger-Themen 3
L Werte zufällig aus Array zurückgeben Java Basics - Anfänger-Themen 15
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
J Klassen Math && Random: wie zufällig sind Zufallszahlen? Java Basics - Anfänger-Themen 19
Azazel Klasseninstanzen zufällig aufrufen Java Basics - Anfänger-Themen 3
J Zusammenzählen von zufällig generierten Zahlen in Java? Java Basics - Anfänger-Themen 16
N Quiz- Fragen zufällig anzeigen lassen Java Basics - Anfänger-Themen 7
K Array zufällig befüllen Java Basics - Anfänger-Themen 4
K Zweidimensionales Array erstellen und zufällig mit 0 und 1 füllen Java Basics - Anfänger-Themen 11
B ArrayList zufällig befüllen Java Basics - Anfänger-Themen 1
C Wert aus Array zufällig wählen Java Basics - Anfänger-Themen 2
H Zufällig generierte Zahlen auf Eingabe prüfen Java Basics - Anfänger-Themen 5
L Elemente zufällig in ein Array verteilen Java Basics - Anfänger-Themen 12
S Jede Reihenfolge einer zufällig langen Liste ausprobieren Java Basics - Anfänger-Themen 3
T Erste Schritte Int Array zufällig mit Zahlen füllen Java Basics - Anfänger-Themen 7
M ArrayList zufällig ausgeben Java Basics - Anfänger-Themen 4
M 3x3 - Array mit Zahlen von 0-8 zufällig belegen Java Basics - Anfänger-Themen 4
K arraylist zufällig aufteilen Java Basics - Anfänger-Themen 5
walker23m Datentypen Zufällig umsortieren einer Hashmap(random?) Java Basics - Anfänger-Themen 3
L JList Aktualisieren funktioniert nur Zufällig Java Basics - Anfänger-Themen 3
D Array zufällig mit 1 oder 0 oder mit true oder false füllen Java Basics - Anfänger-Themen 5
G ZUfällig "ja" "nein" oder "vielleic Java Basics - Anfänger-Themen 7
bugmenot Zufällig einen Boolschen Wert erzeugen. Java Basics - Anfänger-Themen 8
E Zahl zufällig verteilen Java Basics - Anfänger-Themen 13
I Arrays zufällig ausgeben Java Basics - Anfänger-Themen 5
T Karten zufällig anordnen Java Basics - Anfänger-Themen 4
feuervogel feld zufällig sortieren Java Basics - Anfänger-Themen 5
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
S Timer vs ExecutorService: jeden Sonntag um 14.00 Uhr einen Task starten..? Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
X wie bekomme ich durch Eingabeaufforderung definierte double in einen Befehl, welcher 3 erwartete double braucht? Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
N Kann man einen Iterator nur einmal verwenden Java Basics - Anfänger-Themen 5
M Kommandozeilenparamter als EINEN String werten Java Basics - Anfänger-Themen 5
FireHorses Einen Command erst nach einer Chateingabe aktivieren Java Basics - Anfänger-Themen 1
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe ein Spiel entwickelt, dass immer in der 4 Runde einen cast-Fehler erhält Java Basics - Anfänger-Themen 3
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
K Wie verneine ich einen Regex? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben