[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten

0. (Überprüfen Sie den Artikel selbst)

Es ist ein langweiliger Artikel, aber ideal für Anfänger, da er Typparameter in Kurzcode verwendet und super und dies richtig verwendet, und er schätzt auch die Vererbungsfunktion, die der objektorientierten Programmierung eigen ist. Es ist ein Inhalt, mit dem Sie erleben können.

1. Herausforderung

In der ArrayList von Java können Sie das Element mit der Methode set (int index, T element) als das indexierte Element speichern. Wenn Sie dies jedoch tun, wenn die Anzahl der Elemente kleiner oder gleich "index" ist, tritt "java.lang.IndexOutOfBoundsException" auf. Es ist nüchtern und lästig.

2. Lösung

Ich habe eine untergeordnete Klasse "AL " von "ArrayList " geschrieben. Entscheiden Sie im Voraus, "was zu füllen ist, wenn die Anzahl der Elemente nicht ausreicht". Wenn die Anzahl der Elemente tatsächlich nicht ausreicht, füllen Sie sie aus.

Der Code sieht folgendermaßen aus:

AL.java


	class AL<T> extends java.util.ArrayList<T>
	{
		private T filler = null;//※

		void fillBy(T filler){this.filler = filler;}

		//Füllen Sie mit Füllstoff, wenn er an einem Ort zu sein scheint, der nicht existiert
		public T set(int index, T element)
		{
			if(filler!=null) while(this.size() <= index) this.add(filler);
			return super.set(index, element);
		}
		//Gleiches gilt für get
		public T get(int index)
		{
			if(filler!=null) while(this.size() <= index) this.add(filler);
			return super.get(index);
		}
	}

Stichprobe.

Main.java


class Main
{
    public static void main(String...args)
    {
        AL<String> al = new AL<>();
        al.add("indigenous");
        //al.fillBy("I filled.");
        al.set(3, "immigration");
        for(String s : al)
            System.out.println(s);
    }
}

Bei dieser Rate tritt eine Ausnahme auf und es funktioniert nicht wie zuvor. Wenn jedoch die auskommentierte "fillby" -Methode aktiviert ist, wird keine Ausnahme ausgelöst und Folgendes wird angezeigt.

indigenous
I filled.
I filled.
immigration

Recommended Posts

[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
[Java] Ich habe versucht, mit der Grabmethode ein Labyrinth zu erstellen ♪
Ich habe versucht, eine Anmeldefunktion mit Java zu erstellen
Ich habe einen RESAS-API-Client in Java erstellt
[Java] Ich habe versucht, ein Janken-Spiel zu erstellen, das Anfänger auf der Konsole ausführen können
[Java small story] Überwachen Sie, wann der Liste ein Wert hinzugefügt wird
Ich habe versucht, mit AI "A3RT" eine Talk-App in Java zu erstellen.
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe Java gemacht, um (a == 1 && a == 2 && a == 3) immer wahr zu machen
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen
Ich habe versucht, den Block mit Java zu brechen (1)
Eine Geschichte, als ich versuchte, ein Video zu erstellen, indem ich Processing und Resolume verknüpfte
Ich habe versucht, eine Clova-Fähigkeit in Java zu erstellen
Ich habe versucht, die Methode der gegenseitigen Teilung von Eugrid in Java zu implementieren
Ich habe ein Programm erstellt, das aus dem mit Java überladenen Prozess nach der Zielklasse sucht
Eine Geschichte über das Ausführen eines Programms, das Dateien in Java aus einer Bat-Datei kopiert, um die tägliche Arbeit ein wenig effizienter zu gestalten
Ich habe versucht, ein Tool zum Vergleichen von Amazon-Produktpreisen auf der ganzen Welt mit Java, der Amazon Product Advertising API und der Currency API (29.01.2017) zu erstellen.
Ich habe versucht, mit Chocolatey eine Java8-Entwicklungsumgebung zu erstellen
[JDBC] Ich habe versucht, von Java aus auf die SQLite3-Datenbank zuzugreifen.
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich möchte eine Liste mit Kotlin und Java erstellen!
Ich wollte nur eine reaktive Eigenschaft in Java erstellen
Ich möchte eine Funktion mit Kotlin und Java erstellen!
Ich habe versucht, Java Optional und Guard-Klausel koexistieren zu lassen
Ich habe versucht, die Umgebung nach und nach mit Docker aufzubauen
Ich habe versucht, in Java von einer Zeichenfolge in einen LocalDate-Typ zu konvertieren
Ich habe versucht, die Beispielanwendung gemäß der Idee des Buches "Micro Service Architecture" in einen Mikrodienst zu verwandeln.
Ich habe ein wenig digdags docker.run_options ausprobiert
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe das Java-Framework "Quarkus" ausprobiert.
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe jetzt versucht, Java 8 zusammenzufassen
So erstellen Sie ein Java-Array
Eine Geschichte, die ich mit Java nur schwer herausfordern konnte
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
[Unity] Ich habe mit NWPathMonitor ein natives Plug-In UniNWPathMonitor erstellt
Ich habe versucht, die Fehlermeldung beim Ausführen von Eclipse (Java) zu übersetzen.
Ich habe versucht, eine Android-Anwendung mit MVC zu erstellen (Java)
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, das Java-kompatible FaaS-Formular "Fn Project" auszuführen.
Ich habe versucht, den Kalender mit Java auf der Eclipse-Konsole anzuzeigen.
Ich habe versucht, mit Rails eine Gruppenfunktion (Bulletin Board) zu erstellen
Ich habe versucht, ein übergeordnetes Wertklasseobjekt in Ruby zu erstellen
Ich habe versucht, eine einfache Gesichtserkennungs-Android-Anwendung mit OpenCV zu erstellen
So erstellen Sie eine Java-Kalenderzusammenfassung
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
Eine Geschichte, der ich beim Testen der API mit MockMVC verfallen war
Ich habe versucht, Java-Lambda-Ausdrücke zusammenzufassen
Eine Geschichte, die ich mit der Stream-API von Java8 einem Prozess schreiben wollte, der einer while-Anweisung entspricht
[iOS] Ich habe versucht, mit Swift eine insta-ähnliche Verarbeitungsanwendung zu erstellen
Ich habe das neue Yuan-Problem in Java ausprobiert
Ich habe versucht, eine Web-API zu erstellen, die mit Quarkus eine Verbindung zur Datenbank herstellt
Java-Anfänger haben versucht, mit Spring Boot eine einfache Webanwendung zu erstellen
[Einführung in Java] Ich habe versucht, das Wissen zusammenzufassen, das ich für wesentlich halte
Wie erstelle ich einen Discord Bot (Java)