Ich bin süchtig danach.
Beim Umgang mit Listen in Java denke ich, dass ich ArrayList oft als neu verwende.
hoge.java
List<String> list = new ArrayList<>();
Als ich den Google-Lehrer fragte, wann ich die ArrayList wiederverwenden wollte,
Ich denke, dass zwei Wege empfohlen werden. Und ich erwähne den Unterschied zwischen den beiden nicht und ich denke, dass Qiitas Artikel ein Hit sein wird und sagt: "Die Ausführungsgeschwindigkeit ist unterschiedlich".
In der Realität gibt es jedoch nicht nur Unterschiede in der Geschwindigkeit, sondern auch im Verhalten.
Angenommen, Sie möchten eine zweidimensionale Liste erstellen, indem Sie zwei Elemente aus der eindimensionalen Liste extrahieren.
Der Beispielcode ist unten dargestellt. Zuallererst ist es aus dem Fall von neu.
sample.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TestArraylist {
public static void main(String args[]) {
//Zweidimensionale Liste für die Ausgabe
List<ArrayList<String>> sampleLists = new ArrayList<>();
//Temporäre Liste zum Hinzufügen von Elementen zu sampleLists
ArrayList<String> listA = new ArrayList<>();
//Geeignete Probe
List<String> listB = Arrays.asList("AA", "BB", "CC", "DD", "EE", "FF");
//Erstellen Sie eine Liste mit 2 Elementen und fügen Sie sie zu sampleLists hinzu
for (int i = 0; i < listB.size(); i++) {
if (i % 2 == 0) {
listA.add(listB.get(i));
continue;
}
sampleLists.add(listA);
listA.add(listB.get(i));
//Bestätigung vor neu
System.out.println(sampleLists);
//Neue temporäre Liste
listA = new ArrayList<>();
//Bestätigung nach neu
System.out.println(sampleLists);
}
}
}
Wenn Sie dies tun ...
[[AA, BB]]
[[AA, BB]]
[[AA, BB], [CC, DD]]
[[AA, BB], [CC, DD]]
[[AA, BB], [CC, DD], [EE, FF]]
[[AA, BB], [CC, DD], [EE, FF]]
Sie können sehen, dass die Liste genau das ist, was Sie wollen.
Angenommen, Sie verwenden die Methode clear anstelle von new. Die Ausgabe, wenn listA = new ArrayList <> ();
im obigen Beispiel in den Code listA.clear ();
mit der Methode clear umgeschrieben wird, ist ...
[[AA, BB]]
[[]]
[[CC, DD], [CC, DD]]
[[], []]
[[EE, FF], [EE, FF], [EE, FF]]
[[], [], []]
Auf diese Weise ** ist das Element, das hinzugefügt werden sollte, bei jedem Aufruf der Löschmethode eine Liste von Element 0, und das neu hinzugefügte Element wird bis zum nächsten Aufruf der Löschmethode zu allen Listen hinzugefügt. Masu **.
Wenn ich versuche zu googeln, gibt es viele Seiten, auf denen angegeben ist, auf welcher Seite die Elemente des Arrays gelöscht werden können. Ich bin also nicht vorsichtig, aber in Wirklichkeit verhält es sich anders als oben beschrieben. Seien Sie also vorsichtig.
Recommended Posts