[Java] Sammlungsframework

Was ist eine Sammlung?

Sammlungsschnittstelle

Sammlungsinstanziierung

** Oberflächentyp **

** Generische Syntax **

Idiom

Initialisieren Sie die Sammlung zum Zeitpunkt der Instanziierung

import java.util.ArrayList;
public class Main {
  public static void main(String[] args) {
    //Anonyme Klasse
    var data = new ArrayList<String>() {
      //Initialisierungsblock
      {
        add("neko");
        add("inu");
        add("tori");
      }
    };
    System.out.println(data);//[neko, inu, tori]
  }
}

Prozess in Sammlung in der Reihenfolge mit Erweiterung für

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<String>() {
      {
        add("neko");
        add("inu");
        add("kuma");
      }
    };
    //Prozess unter Abholung in der richtigen Reihenfolge
    for (var s : data) {
      System.out.println(s); //neko inu kuma
    }
    //Bei Verwendung eines Iterators
    //     var itr = data.iterator();
    //     while (itr.hasNext()) {
    //      System.out.println(itr.next());
    //     }
  }
}

Löschen Sie Elemente in einer Schleife

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<String>() {
      {
        add("neko");
        add("inu");
        add("niwatori");
      }
    };

    var ite = data.iterator();
    while (ite.hasNext()) {
      System.out.println(ite.next()); //neko inu niwatori
      ite.remove();
    }
    System.out.println(data); //[]
  }
}
//NG Beispiel:Erweiterung für
    for (var s : data) {
      System.out.println(s);
      data.remove(s);
    }

Lesen Sie die Liste in umgekehrter Reihenfolge

import java.util.ArrayList;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<String>() {
      {
        add("neko");
        add("inu");
        add("shimaenaga");
      }
    };
    //Stellen Sie das Ende auf die Startposition
    var ite = data.listIterator(data.size());
    while (ite.hasPrevious()) {
      System.out.println(ite.previous()); //shimaenaga inu neko
    }
  }
}

Array- und Sammlungskonvertierung

Vom Array zur Liste

//NG Beispiel: Vorhandene Zeichenfolge in Liste konvertieren, Wert in konvertierte Liste hinzufügen und löschen
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    var data = new String[] { "cat", "dog", "bird"};
    var list = Arrays.asList(data);
    list.set(0, "neko");
    System.out.println(list); //[neko, dog, bird]
    System.out.println(Arrays.toString(data)); //[neko, dog, bird]
    //list.add("inu"); //UnsupportedOperationException
    //list.remove(0);  //UnsupportedOperationException
  }
}
//OK Beispiel: Konvertieren Sie eine vorhandene Zeichenfolge in eine Liste, fügen Sie der konvertierten Liste Werte hinzu und löschen Sie sie
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    var data = new String[] { "cat", "dog", "bird" };
    var list = new ArrayList<String>();
    Collections.addAll(list, data);
    list.set(0, "neko");
    list.add("inu");
    System.out.println(list); //[neko, dog, bird, inu]
    list.remove(1);

    System.out.println(list); //[neko, bird, inu]
    System.out.println(Arrays.toString(data)); //[cat, dog, bird]
  }
}

Von der Sammlung zum Array

import java.util.ArrayList;
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<String>(Arrays.asList("cat", "dog", "bird"));
    //Kopieren Sie den Inhalt in ein Array mit der gleichen Größe wie die Liste
    var strs = new String[data.size()];
    data.toArray(strs);
    //Fügen Sie nur Daten zur Konvertierungsquellenliste hinzu
    data.set(0, "neko");
    System.out.println(Arrays.toString(strs)); //[cat, dog, bird]
    //Nur die Liste der Konvertierungsquellen hat sich geändert
    System.out.println(data); //[neko, dog, bird]
  }
}

In eine unveränderliche Sammlung konvertieren

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<String>(Arrays.asList("cat", "dog", "bird"));
    //Unveränderliche Liste erstellen
    var udata = Collections.unmodifiableList(data);
    udata.set(0, "neko"); //UnsupportedOperationException
    udata.add("inu");  //UnsupportedOperationException
  }
}
//Der Inhalt von Sammlungselementen kann in StringBuilder geändert werden
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    var data = new ArrayList<StringBuilder>(Arrays.asList(
        new StringBuilder("Hallo"),
        new StringBuilder("Kame-san"),
        new StringBuilder("Yo")));
    var udata = Collections.unmodifiableList(data);
    udata.get(0).append("Kameyo");
    System.out.println(udata); //[Hallo,Kame-san,Yo]
  }
}
//Unveränderliche Sammlung, die direkt von der of-Methode generiert wird
import java.util.List;
public class Main {
  public static void main(String[] args) {
    var data = List.of("cat", "dog", "bird");
    System.out.println(data);
    data.set(0, "neko"); //UnsupportedOperationException
  }
}

Leere Sammlungsgenerierung

Synchronisierte Sammlungsgenerierung

Recommended Posts

[Java] Sammlungsframework
Java-Framework
Java9-Sammlung
Java Reintroduction-Java Collection
Java Framework Vergleich
Spielen Sie Framework2.5 (Java) -Tipps
Fragen zum Java-Sammlungsinterview
[Entwicklung] Java Framework Vergleich
Lernen von Java Framework # 1 (Mac-Version)
Erste Schritte mit Java Collection
Ich habe den Sammlungsrahmen zusammengefasst.
Java Parallel Code Sample Collection
Überprüfungshinweise zum Java Collections Framework
[Java] Komparator der Collection-Klasse
Sammlung von Java-Testcode-Methoden
Java
Java
Berücksichtigung des Java Persistence Framework 2017 (Zusammenfassung) -1
Überlegungen zum Java Persistence Framework 2017 (6) Ebean
Grundursache für Java Framework Bug
Überlegungen zum Java Persistence Framework 2017 (5) Iciql
Erstellung der Play Framework 2.6 (Java) -Entwicklungsumgebung
Berücksichtigung des Java Persistence Framework 2017 (7) EclipseLink
Überlegungen zum Java Persistence Framework 2017 (1)
Spring Framework-Tools für Java-Entwickler
Ich habe das Java-Framework "Quarkus" ausprobiert.
JNA-Mustersammlung (Java Native Access)
Überlegungen zum Java Persistence Framework 2017 (2) Doma2
Java-Leistung Kapitel 5 Grundlagen der Garbage Collection
Java studieren ―― 3
[Java] -Array
Versuchen Sie es mit dem Java Framework Nablarch [Web Application]
Java geschützt
[Java] Anmerkung
[Java] Modul
Java-Array
Bedeutung der aus der Java Collection gelernten Schnittstelle
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Java-Methoden
Erraten Sie das Java Persistence Framework 2017 (3) Reladomo
Java-Methode
Java (Konstruktor)
Java-Array
[Java] ArrayDeque
Java (überschreiben)
Java (Methode)
Java Day 2018
Java-Zeichenfolge
Java (Array)
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Java-Shell-Sortierung
[Java] compareTo
Java reflektierend 获 获 举