[JAVA] Erstellen einer ArrayList, mit der Sie die Koordinaten einer zweidimensionalen Ebene eingeben und abrufen können

Überblick

Ich habe ein Programm erstellt, das Koordinaten einer zweidimensionalen Ebene mit einem zweidimensionalen Array generieren und jederzeit in eine ArrayList werfen kann.

Einzelheiten

Derzeit habe ich Probleme, einen Algorithmus zur Erzeugung von Labyrinthen zu erstellen, der die Wanddehnungsmethode verwendet. Unterwegs wurde mir jedoch klar, dass ich "etwas vorbereiten musste, um die Koordinaten der im Bau befindlichen Wand aufzuzeichnen". .. (Referenzseite: Labyrinthgenerierungsalgorithmus (Wanddehnungsmethode))

Da die Wand zufällig erzeugt wird, sind die aufzuzeichnenden Koordinaten = die Anzahl der Elemente nicht konstant. Daher denke ich vage, dass es schön wäre, so etwas wie das Bild unten zu haben.

伸縮自在な座標入れ.png

Als Ergebnis verschiedener Untersuchungen habe ich erfahren, dass die in Java vorhandene ArrayList "ein Array ist, das die Länge ohne Erlaubnis erweitert". Es kann jedoch eine Frage der Überprüfung sein, aber die meisten davon sind vom Typ int und vom Typ String, und ich konnte nichts finden, das Arrays verarbeitet.

Aus diesem Grund habe ich versucht, eine ArrayList zu erstellen, die zweidimensionale Arrays verarbeiten kann, und bestimmte Vorgänge wurden ausgeführt. Daher werde ich sie im Folgenden während der Aufnahme zeigen. Außerdem habe ich beim Erstellen auf die folgende Site verwiesen. (Referenz: Mehrdimensionales Array in ArrayList)

Verfahren

(1) Erstellen einer ArrayList (2) Erzeugung eines zweidimensionalen Arrays zur Zuordnung (3) Verwenden Sie den Befehl add, um das in (2) generierte Array zur ArrayList hinzuzufügen. (4) Verwenden Sie den Befehl get, um die in (3) hinzugefügten Daten zu lesen.

Generics.java


import java.util.ArrayList;

public class Generics{
	public static void main(String[] args){
		/*
Ein Programm, das einer ArrayList ein zweidimensionales Array hinzufügt und die Werte abruft
→ Generieren Sie beim Hinzufügen ein Array und ein Array.add
→ Array beim Abrufen des Wertes.get
		*/
		
		ArrayList<Integer[]> array = new ArrayList<Integer[]>();
		System.out.println("---------------point1------------------");
		
		Integer[][] point1 = {{6,7}};
		array.add(point1[0]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(0)[0],array.get(0)[1]);
		
		System.out.println("---------------point2------------------");
		
		Integer[][] point2 = {{7,4},{2,1}};
		array.add(point2[0]);
		array.add(point2[1]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(1)[0],array.get(1)[1]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(2)[0],array.get(2)[1]);
		
		System.out.println("---------------point3------------------");
		
		Integer[][] point3 = {{1,2},{4,6},{3,6}};
		array.add(point3[0]);
		array.add(point3[1]);
		array.add(point3[2]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(3)[0],array.get(3)[1]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(4)[0],array.get(4)[1]);
		System.out.printf("(x,y)=(%d,%d)\n",array.get(5)[0],array.get(5)[1]);
		
		/*Ausführungsergebnis
		---------------point1------------------
		(x,y)=(6,7)
		---------------point2------------------
		(x,y)=(7,4)
		(x,y)=(2,1)
		---------------point3------------------
		(x,y)=(1,2)
		(x,y)=(4,6)
		(x,y)=(3,6)*/
	}
}

Beiseite

Insgesamt ist es ein Programm, das "vorerst funktioniert, aber ich bin mir nicht sicher, was los ist und wie". Insbesondere in der Deklaration von ArrayList habe ich keine Ahnung, warum die Generierung und Erfassung auf diese Weise gut funktionieren. Vielleicht liegt es daran, dass Sie nicht wirklich wissen, was eine ArrayList überhaupt ist, und dass Sie durch die Überlappung von Generika, die Sie nicht wirklich verstehen, doppelt verdeckt werden.

Ich denke auch: "Wenn Sie sich mit Dingen befassen möchten, die Sie bisher nicht verstehen, ohne sie gut zu kennen, warum nicht eine geeignete Klasse bilden und sie auflisten?" Vielleicht gibt es eine effizientere Möglichkeit, es zu schreiben.

Vorerst in der Zukunft, während ein Labyrinth erstellt wird, ・ Was ist ArrayList? ・ Was sind Generika? Wird weiter untersucht.

Recommended Posts

Erstellen einer ArrayList, mit der Sie die Koordinaten einer zweidimensionalen Ebene eingeben und abrufen können
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt
Möchten Sie eine IOException aus dem Stream werfen? In diesem Fall
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
[Android] Entwickeln Sie einen Dienst, mit dem Universitätsstudenten den Betriebsstatus von Bussen überprüfen können, die an der Universität verkehren.
Eine Lösung für einen Fehler, der Sie verärgert, dass Sie in einer Produktionsumgebung nicht der MySQL-Standardeinstellung ONLY_FULL_GROUP_BY folgen und diese nicht eindeutig ist.
Ich habe versucht, eine App zu erstellen, mit der Sie nach Genre posten und chatten können ~ Wo ich es schwer hatte ~
Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
Eine Methode, die Transformationen parallel auf alle Elemente anwendet und ein Array von Rückgabewerten zurückgibt, die ihre Reihenfolge beibehalten
Ich habe versucht, eine App zu erstellen, mit der Sie nach Genre posten und chatten können ~ Übersicht über die App ~
Eine Geschichte, die mir klar wurde, dass ich überhaupt als Ingenieur studieren musste
So rufen Sie den Hashwert in einem Array in Ruby ab
[Ruby] So rufen Sie den Inhalt des Doppel-Hash ab
Ein Programm, das die Anzahl der Wörter in einer Liste zählt
[Rails] So speichern Sie die Anforderungs-URL eines Benutzers, der nicht angemeldet ist, vorübergehend und kehren nach der Anmeldung zu dieser URL zurück
[Swift] Wenn Sie wissen möchten, ob die Anzahl der Zeichen in String mit einer bestimmten Anzahl übereinstimmt ...
Eine Sammlung von Mustern, die Sie kennen möchten, um den Code nicht zu komplizieren
Wirf eine Ausnahme und fange, wenn es keinen Handler gibt, der dem Pfad im Frühjahr entspricht
Wenn Sie eine Methode in RSpec verspotten möchten, sollten Sie die Methode allow für mock und die Singleton-Methode verwenden.
Versuchen Sie, die Idee eines zweidimensionalen Arrays mit einem eindimensionalen Array nachzuahmen
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
So ermitteln Sie die Länge einer Audiodatei mit Java
Wenn Sie einen Anruf erhalten, senden Sie eine SMS an diese Nummer
Es wurde ein Fehler behoben, der beim Versuch auftrat, Spark in einer Umgebung zu verwenden, in der Java 8 und Java 11 gleichzeitig vorhanden sind
Wie man IGV mit Socket-Kommunikation bedient und wie man einen Ruby Gem mit dieser Methode herstellt
Sind Sie noch erschöpft von der Implementierung der Suchfunktion? Gem'ransack ', der sofort implementiert werden kann
So stellen Sie das Bild mithilfe der Symbolschriftart (Symbole) links / rechts von der Schaltfläche auf zeichnbar ein
Die Geschichte der Einführung von Gradle als Nachrüstung eines bestehenden Systems, das keine Pakete verwaltet
[Java] Geben Sie das Ergebnis von ffprobe -show_streams in JSON aus und ordnen Sie es einem Objekt in Jackson zu
Im kostenlosen Kurs von RubyOnRails Udemy ist ein Fehler aufgetreten, der behoben und bis zum Ende durchgearbeitet wurde
Dies und das von JDK
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
So testen Sie eine private Methode und verspotten sie teilweise in Java
Lassen Sie Apache und Tomcat unter CentOS 8 im Handumdrehen zusammenarbeiten
Eine Sammlung von Phrasen, die das "unterschiedliche Gefühl" von Java und JavaScript beeindruckt
Für Sie, die beklagen, dass die Konvertierung von JODConverter + LibreOffice langsam ist
Bestätigung und Umgestaltung des Flusses von der Anfrage zum Controller in [httpclient]
Dies und das der Implementierung der zeitlichen Beurteilung von Daten in Java
So ändern Sie die maximale und maximale Anzahl von POST-Daten in Spark
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
So ändern Sie den Wert einer Variablen an einem Haltepunkt in IntelliJ
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
Finden Sie das Maximum und Minimum der fünf in Java eingegebenen Zahlen
Die Geschichte eines arithmetischen Überlaufs, der in Ruby nicht auftreten sollte
Ubuntu 18 ist das Betriebssystem, das einer Serverinstanz in der Sakura-Cloud eine Netzwerkkarte hinzufügt und eine lokale IP zuweist.
[Hinweis] [Anfänger] Schreiben, wenn der Wert eines Array-Elements in einem sich wiederholenden Satz von Ruby geändert wird
Wenn Sie einem Argument in einer Ruby-Methode neu zuweisen und dann "super" aufrufen → Das neu zugewiesene wird verwendet
Ich habe versucht, eine Webanwendung zu erstellen, die Tweets mit einer Vue-Word-Cloud durchsucht und die Tendenz untersucht, was im zugehörigen Profil geschrieben steht