Hallo, ich mal wieder Nehmen wir mal an ich fülle mir ein Array mit, sagen
wir mal 10 beliebigen (Random) Zahlen. Ich weiss zwar wie ich mir das mit einer for-schleife schön der reihe nach ausgeben kann, aber nicht wie ich auf doppelte prüfen kann. Jemand eine Idee?
Hey. Sowas ? Code: Wobei contains nen boolean zurück gibt.
Du ordnest die Zahlen der Reihe nach an und überprüfst dann jede Zahl mit der nächsten. Gleiche Zahlen kann man dann direkt rausschmeissen.
mhh Sortieren wäre dann stichwort bubblesort? Zuletzt bearbeitet: 26. April 2007
Wenn du die Werte in einer java.util.List hast, kannst du Duplikate herausfinden, indem du das Ergebnis von List.indexOf() mit dem von List.lastIndexOf() vegleichst.
Zitat von kalleberlin: mhh Sortieren wäre dann stichwort bubblesort? Ja, zum Beispiel.
So, hatte die ganze zeit ein Internet totalausfall, deswegen hab ich in der Zeit es doch mit Bubblesort gemacht^^. Nun hab ich aber doch noch ein Problem, da könnt ihr mir sicher auch helfen
Also hier erstmal der Code: PHP:
Also, folgendes weiss ich : Der Code so wie er dort oben steht ist nur suboptimal. @Grenzwert Ich habe mir dein link mal angeschaut. Unter den vielen tausend ( PHP:
als Interessant befunden ABER: wie setze ich das jetzt in meinen code um? Sorry aber ich hab das alles noch nicht so 100%ig begriffen^^. Der code da oben hat mich schon ein paar graue Haare gekostet Danke erstmal für eure Antworten
Das wäre mein Vorschlag. PHP: Kann man sicherlich besser und effizienter machen. Aber auf die schnelle ist mir nur das eingefallen. Hab den letzten Java Code vor über 1 Jahr geschrieben.
Es wäre IMHO sinnvoller eine ArrayList-Instanz mittels add() zu füllen und dabei mit contains() auf Duplizität zu prüfen: Code: Ob's tatsächlich sinnvoller ist, müßte jemand, der sich mit Java auskennt, beantworten… ich selbst hab nämlich von Java keinen Plan greetings, Keita
Deine Lösung ist besser, falls man mit einer ArrayList arbeiten möchte / kann. Allerdings ist es durch das 'continue' falsch. Deine ArrayList würde dann nicht mehr 6 Zahlen beinhalten. Müsste man noch ändern.
Ich hatte grade mal ein bischen Langeweile: Code: Die addierte 1 beim Ziehen der Zufallszahl kommt daher, daß Random.nextInt(int) Zahlen zwischen 0 (inklusive) und der angegebenen Zahl (exklusive) ausgibt, bei nextInt(49) also nur die Zahlen von 0 bis 48. Zuletzt bearbeitet: 26. April 2007
Habe mal die Version von Keita etwas abgeändert: Code: Habe es jetzt nicht getest, denke aber das ist die einfachste Lösung. Grüße tewes
Ok, vorweg erstmal ein fettes Dankschön an euch alle das ihr mir so zahlreiche Vorschläge unterbreitet habt Das ist jetzt ne Menge Input für mich, deshalb würde ich das gerne mal mit euch durchgehen, ob ich das auch richtig verstanden hab also: PHP:
Wenn ich jetzt richtig verstanden habe, ist das das gleiche wie: Was mich wundert, ist das bei der obigen Variante das Array ohne Typ deklariert wird?! Das nächste: PHP:
wäre dann ? PHP:
So und nun noch sachen die ich eher gar nicht verstehe: PHP:
Schonmal Danke für eure Geduld
Die ArrayList ist nicht das Gleiche wie ein Array. Sie kann aber unter anderem die gleiche Aufgabe erfüllen und noch viel mehr. Das Add ist eine Methode, welche zur Klasse ArrayList gehört oder zumindest von einer höheren abgeleitet wird. Dazu müsstest Du aber ein gutes Javabuch bemühen um das zu kapieren
(www.javabuch.de)
PHP:
Zitat von Grenzwert: Allerdings ist es durch das 'continue' falsch. Oh ja, da hab ich gepennt, das Inkrement gehört natürlich in den Schleifenrumpf… Der korrigiert Code (nach meinem Styleguide
Code:
greetings, Keita Zuletzt bearbeitet: 26. April 2007
@Keita: Würde das Continue rausnehmen und es durch i-- ersetzen. Da continue ja nicht viel besser als goto
ist
@Keita: Das ist so auch nicht ganz richtig. Du müsstest (nach deinem styleguide) direkt vor dem continue ein i-- einfügen und dein i++ wieder rausnehmen: Code: Ansonsten würdest du , sofern keine Zahl doppelt ge-zufall-t wird, nur drei Zahlen in der Liste haben.
Zitat von Cobinja: @Keita: Das ist so auch nicht ganz richtig. Du müsstest (nach deinem styleguide) direkt vor dem continue ein i-- einfügen und dein i++ wieder rausnehmen: Code: Ansonsten würdest du , sofern keine Zahl doppelt ge-zufall-t wird, nur drei Zahlen in der Liste haben. Das ist schon korrekt was er gemacht hat. Im Schleifenkopf inkrementiert er ja nichts mehr, sondern erst am Ende. |