Wie um zu überprüfen, ob Objekte in eine array-Liste hat den gleichen Wert?
Ich mache ein einfaches Spiel für die Android-Plattform. Ich habe 25 Objekte aus der Klasse, ich nenne Kreis. Jedes Circle-Objekt hat das Feld color
hält, dass eine int-Zahl, welche
- für rot
- für blau
- für weiße
- für gelb und schließlich
- für grün.
So gibt es fünf Objekte von jeder Farbe.
Jedes Objekt hat auch ein boolescher Wert, ich nenne status
, und es ist auf false gesetzt am Anfang. Aber während des Spiels, einige der Circle-Objekte status
auf true gesetzt sind.
Alle 25 Objekte gespeichert sind, die in einer ArrayList
das nenne ich listOfCircles
.
Meine Frage ist, wie kann ich überprüfen, ob alle Kreis-Objekte, die auf true gesetzt sind, hat die gleiche Art von Farbe code? Lassen Sie uns sagen, dass drei Kreis-Objekte auf true gesetzt und die einzelnen Objekte color
sind 3, aber der Fall könnte auch sein, dass auf dieser drei-Kreis-Objekt hat den Wert 1 und die beiden anderen 4, dann ist es nicht ein Gültiger match.
Etwas Hilfe wäre nett!!
Nein, die erste option ist, was ich Suche. Könnten Sie beantworten mit einigen kurzen code-Beispiel?
Wenn ich verstehen deine Frage richtig, dann ist mein Ansatz wäre die Verwendung von zwei
for
Schleifen jeder Vergleich der beiden Indizes.InformationsquelleAutor 3D-kreativ | 2013-05-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Funktioniert es so. Es geht durch die Liste der Kreise und sieht für die erste, hat
status = true
. Wenn er Sie findet, speichert es die Farbe des Kreises inint color
. Bei jedem Schritt danach, wenn es feststellt, dass ein aktiver Kreis(mitstatus = true
es überprüft, um zu sehen, wenn die Farbe des Kreises entspricht dem original.Wenn es nicht der Fall, dann bedeutet es nicht, alle aktiven Kreise die gleiche Farbe haben. Da die
flag
wurde ursprünglich gesetzt, umtrue
eine einzigefalse
ist genug, um zu wissen, für sicher, dass nicht alle aktiven Kreise in der gleichen Farbe.Wenn keine
false
gefunden wird, was bedeutet, wenn alle aktiven Kreise die gleiche Farbe haben wie die ersten aktiven Kreis, dann dieflag
bleibttrue
.Farbe ist ein int
Besser! 🙂 Funktioniert das auch, wenn es nur zwei Objekte, die auf TRUE gesetzt sind oder fünf Objekte, die auf TRUE gesetzt sind?
OK, Wenn flag immer noch TRUE ist, dann haben Sie alle das gleiche Farbcode?
OK! Sieht gut aus! Vielen Dank für die Hilfe! Ich werde versuchen, den code später!
InformationsquelleAutor flavian
Und zu prüfen, ob ein bestimmter Wert ist es mehr als einmal konnte man so etwas wie dieses:
InformationsquelleAutor M. Haris Azfar
Könnten Sie so etwas wie dies, um zu sehen, wie oft ein bestimmter Wert da ist:
//es kann alles sein, was Integer ist, lege ich 1 so kann man verstehen,
InformationsquelleAutor M. Haris Azfar
wenn die Frequenz des ersten element der arraylist entspricht die Größe der arraylist,dann sind alle Elemente gleich sind,sonst nicht gleich
InformationsquelleAutor saurabh mishra
Einer einfachen for-Schleife genügt, da Sie nur die Prüfung für eine Farbe:
InformationsquelleAutor jma127
Setzen ein flag isValid auf true und eine Farbe-flag " -1 " ist. Dann das array Durchlaufen und, wenn ein Objekt auf true gesetzt ist, dann legen Sie die Farbe, die Nummer (stellen Sie sicher, dass es nur einmal), dann gehen Sie in eine andere if-Anweisung. In dieser zweiten wenn-Anweisung wenn die Farbe nicht mit der Anzahl legen Sie isvalid auf false und brechen.
Ansonsten ist diese Schleife endet mit true was ist ein Gültiger Satz.
InformationsquelleAutor William Falcon
InformationsquelleAutor smttsp