Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Bin gerade an nem Projekt beschäftigt bei dem ich momentan etwas auf dem Schlauch stehe. Folgendes Problem:
Ich habe eine Arraylist, die Objekte enthällt. Diese werden per Random ausgegeben, immer schön separat eins nach dem andern. Jedoch kommt es teilweise vor, dass das gleiche Objekt zweimal nacheinander ausgegeben wird, sprich die "Randomzahl" für den Arraylist-Index zweimal der Selbe ist.
Wie kann ich das umgehen? Kann ich irgendwie einen Vergleich aufstellen zum vorherigen Objekt und wenn es das Selbe ist, das nächste Objekt ausgeben lassen, bis ich ein "neues" habe?
Bin für jeden konstruktiven Hinweis dankbar. Bitte helft mir da mal auf die Sprünge .
Naja du musst den vorherigen Index in einer Variablen speichern und anschließend mit dem aktuellen Index auf Gleichheit prüfen. Sollte ja wohl nicht so schwer sein.
Was hindert dich daran den Inhalt der Arraylist mit Collections shuffle zu mischen und anschließend den Inhalt nacheinander auszugeben, somit würde dein Problem erst gar nicht auftreten.
Natürlich kannst du dir das letzte Objekt immer speichern und prüfen ob altesObjekt.equals(neuesObjekt) wahr ist.
Je nachdem, wie die objekte da ausgewählt werden kannst du aber auch folgendes machen:
- Objekte in eine Seperate Liste speichern
- Zufällig eines auswählen (und dieses Element entfernen!)
- das so lange machen bis du genug Objekte hast oder Liste leer ist
Alternativ kannst du die neue Liste natürlich auch mischen (shuffle) und diese dann ausgeben.
Das ganze hängt natürlich davon ab, ob das wiederholte Ziehen allgemein nicht gehen soll, oder nur nicht direkt nacheinander das gleiche Objekt erlaubt ist.
Hey danke für die schnelle Antwort. Hmm stimmt, wär ja eig. soo einfach . Ich sitze wohl schon zu lange vorm Rchner... Das mit dem shuffle gefällt mir wirklich gut, muss ich gleich mal meinen Code umschreiben. Ich geb dir dann morgen kurz Feedback obs geklappt hat.
Guten Morgen allerseits, habe das mit dem shuffle mal mit eingebaut und es funktioniert echt super. Ne Codevereinfachung ist es obendrein auch noch. --> Top!
Die Frage, ob NIE zweimal das gleiche ausgegeben werden soll, oder nur NIE zweimal das gleiche hintereinander ist da aber auch wichtig. Das sind ja u.U. zwei vollkommen verschiedene Anforderungen...
Das ganze hängt natürlich davon ab, ob das wiederholte Ziehen allgemein nicht gehen soll, oder nur nicht direkt nacheinander das gleiche Objekt erlaubt ist.