Suche ein 2D-Array
Habe ich instanziiert ein 2D-array mit einer bearbeitbaren Anzahl von Zeilen und eine bestimmte Anzahl von drei Spalten.
Ist es zufällig gefüllt mit 0 und 1 ist mithilfe von Random .nextInt(2) - Methode.
Nachdem das array gefüllt ist, ich möchte in der Lage zum durchsuchen des array und Rückgabe der ersten Entstehung von 0.
Wie kann ich dies tun?
Zum Beispiel, wenn ich ein array, das so ähnlich aussah:
- 1 1 0
- 0 1 0
- 1 1 1
Das erste auftauchen würde (0,3). Ich möchte suchen das array horizontal und, wenn es erreicht die Dritte Spalte (das Ende), geht es in die nächste Zeile.
Hinweis: ich ursprünglich getestet der folgende code-Abschnitt, der mit einem 2D-array, das war komplett gefüllt mit 0 und wenn ich manuell eingefügt 1 im array und dann versucht, auf der Suche nach dem ersten vorkommen einer 0 es funktionierte. Aber der code funktioniert nicht, wenn das array wird zufällig gefüllt..
public String findNextAvailable()
{
for (int i=0; i<seatlist.length; i++)
{
for (int j=0; j<seatlist[i].length; j++)
{
int k=0;
if (seatlist[0][0]==0)
{
nextavailable= seatchart[0][0];
break;
}
else
if(seatlist[k][j]==0)
{
nextavailable= seatchart[k][j];
break;
}
else
{ k++;
if(seatlist[k][j]==0)
{
nextavailable= seatchart[k][j];
break;
}
}
}
}
return nextavailable;
}
Vielen Dank im Voraus!
Für bessere Hilfe früher, nach einem SSCCE.
Wie verstehen Sie das erste vorkommen in einem 2D-array?
Ich will auf Rückgabe der position des ersten Vorkommens.
Sorry! Ich bearbeitet meine post, um das erste auftauchen klarer!
InformationsquelleAutor nichi | 2013-05-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Obwohl möglicherweise möchten Sie erstellen eine Sitz-Objekt, das anstelle, dass ist einfacher, mit zu arbeiten:
und ersetzen Sie die Rückgabe eines Strings mit:
Ich denke, Sie verlängern könnte, was ich hatte, weiter in der Seat-Klasse an eine sinnvolle position wie 1A etc. Sie kann auch ein Ort Klasse aus einer Liste<Zeile> und eine Zeile ist eine Liste<Sitz - > und alles könnte so eingestellt sein, wenn Sie Ihre Venue-Objekt.
Der Sitz Klasse sollte wirklich nur eine zusätzliche Methode, die bietet eine Sitz-Zahl, die ein Mensch verstehen kann wie 1A etc. nach seinen eigenen Zeile / Spalte die Werte und transformieren der Spalten Buchstaben.
Danke! Habe es endlich an die Arbeit!
InformationsquelleAutor John484
gut, wenn Sie break in der inneren Schleife, die Sie noch ausführen wieder die äußere Schleife, und Sie wind-up ersetzen, was Sie denken, ist Ihre Letzte Ergebnis mit dem nächsten Durchlauf der äußeren Schleife. statt zu brechen, nur Rückgabe Recht gibt.
InformationsquelleAutor LanternMike
Müssen Sie zurück die Positionen der ersten Begegnung mit 0, also, warum sind Sie brechen aus der if-Anweisung der äußeren Schleife wird noch ausgeführt!
Erstellen Sie einfach ein integer-array:
Ändern Sie den Rückgabetyp:
In jedem der if-Anweisungen den Inhalt zu ändern, so dass es liest:
Das Endergebnis wird in etwa so Aussehen:
InformationsquelleAutor James
es gibt viele verschiedene Arten von sucht, manche schneller und manche leichter zu tun. Hier ist ein Programm, das ich gemacht, hat Methoden für alle Arten von Ihnen. Sie haben Sie zu ändern ein wenig, so wird es such ein 2d-array, aber es sollte nicht zu hart sein.
'
Paket linear_search;
import java.util.Arrays;
import java.util.Scanner;
'
Sie haben nur entfernen Sie die scanner-und hard-code "0" als Standardwert sollten Sie Suche für.
InformationsquelleAutor Nolan Gormley