Eine Sammlung ist eine Box, in der mehrere Elemente wie "ArrayList" und "LinkedList" gespeichert werden können.
Dieses Mal werde ich über die folgenden zwei Sammlungen schreiben. Die Antwort ist im Nachschlagewerk geschrieben, aber ich würde es gerne selbst ausprobieren und erleben. Wenn möglich, vergleichen Sie es mit der Sequenz.
・ ArrayList
・ LinkedList
Das Hinzufügen ist mit ArrayList
etwas schneller. (LinkedList
ist auch schnell genug)
Die Erfassung ist mit "ArrayList" viel schneller.
Das Löschen ist bei weitem die schnellste "LinkedList".
Da es lange dauert, die LinkedList
zu bekommen
Ist es nicht in Ordnung, "ArrayList" zu verwenden, wenn Sie eine Liste erstellen, die eine Erfassung beinhaltet?
Addiere x Get=> `ArrayList`
Hinzufügen x Löschen=> `LinkedList`
Add x Get x Delete=> `ArrayList`
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
public static void main(String[] args) {
//Starten Sie die Messung der ArrayList
long arrayStart = System.currentTimeMillis();
//Vorbereitung
List<String> addArrayList = new ArrayList<String>();
//Zusätzliche Bearbeitung
for (int num = 0; num<1000000; num++) {
addArrayList.add("Element");
}
//Ende der Messung von arrayList
long arrayEnd = System.currentTimeMillis();
System.out.println("arrayList(hinzufügen) : "+(arrayEnd - arrayStart) + "ms");
//Zusätzliche Menge bestätigen
int arraylistSize = addArrayList.size();
System.out.println(arraylistSize);
//Starten Sie die Messung von linkedList
long linkedStart = System.currentTimeMillis();
//Vorbereitung
List<String> addLinkedList = new LinkedList<String>();
//Zusätzliche Bearbeitung
for (int num = 0; num<1000000; num++) {
addLinkedList.add("Element");
}
//Ende der Messung von linkedList
long linkedEnd = System.currentTimeMillis();
System.out.println("linkedList(hinzufügen) : "+(linkedEnd - linkedStart) + "ms");
//Zusätzliche Menge bestätigen
int linkedListSize = addLinkedList.size();
System.out.println(linkedListSize);
}
}
Ergebnis.java
arrayList(hinzufügen) : 35ms
1000000
linkedList(hinzufügen) : 259ms
1000000
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
public static void main(String[] args) {
//Bereiten Sie eine Liste mit 30000 Elementen vor
String elem = "elem";
List<String> array30000elems = new ArrayList<String>();
List<String> linked30000elems = new LinkedList<String>();
for(int i = 0; i<300000; i++){
array30000elems.add(elem);
linked30000elems.add(elem);
}
//Start der ArrayList-Messung
long arrayStart = System.currentTimeMillis();
int num = 0;
//Prozess löschen
while(array30000elems.size() > 0){
num += 1;
array30000elems.remove(elem);
}
System.out.println("Verarbeitungszeit: "+num+"Mal");
long arrayEnd = System.currentTimeMillis();
System.out.println("arrayList(Löschen) : "+(arrayEnd - arrayStart) + "ms");
//Start der LinkedList-Messung
long linkedStart = System.currentTimeMillis();
int num2 = 0;
//Prozess löschen
while(linked30000elems.size() > 0){
num2 += 1;
linked30000elems.remove(elem);
}
System.out.println("Verarbeitungszeit: "+num2+"Mal");
long linkedEnd = System.currentTimeMillis();
System.out.println("linkedList(Löschen) : "+(linkedEnd - linkedStart)+"ms");
}
}
Ergebnis.java
Verarbeitungszeit:300.000 Mal
arrayList(Löschen) : 5387ms
Verarbeitungszeit:300.000 Mal
linkedList(Löschen) : 16ms
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
public static void main(String[] args) {
//Bereiten Sie eine Liste mit 30000 Elementen vor
String elem = "elem";
List<String> array30000elems = new ArrayList<String>();
List<String> linked30000elems = new LinkedList<String>();
for(int i = 0; i<300000; i++){
array30000elems.add(elem);
linked30000elems.add(elem);
}
//Start der ArrayList-Messung
int count = 0;
long arrayStart = System.currentTimeMillis();
//Erwerbsprozess
for(int i = 0; i < array30000elems.size(); i++){
count += 1;
array30000elems.get(i);
}
long arrayEnd = System.currentTimeMillis();
System.out.println("arrayList(Erhalten) : "+(arrayEnd - arrayStart) + "ms");
System.out.println("Verarbeitungszeit: "+count+"Mal");
//Start der LinkedList-Messung
int count2 = 0;
long linkedStart = System.currentTimeMillis();
//Erwerbsprozess
for(int i = 0; i < linked30000elems.size(); i++){
count2 += 1;
linked30000elems.get(i);
}
long linkedEnd = System.currentTimeMillis();
System.out.println("linkedList(Erhalten) : "+(linkedEnd - linkedStart) + "ms");
System.out.println("Verarbeitungszeit: "+count2+"Mal");
}
}
Ergebnis.java
arrayList(Erhalten) : 7ms
Verarbeitungszeit:300.000 Mal
linkedList(Erhalten) : 38475ms
Verarbeitungszeit:300.000 Mal
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
public static void main(String[] args) {
String elem = "elem";
List<String> samplelist = new ArrayList<String>();
long start1 = System.currentTimeMillis();
for(int i =0; i < 30000; i++){
samplelist.add(elem);
}
System.out.println("Nach Zugabe: "+samplelist.size());
while(samplelist.size() > 0){
samplelist.remove(elem);
}
long end1 = System.currentTimeMillis();
System.out.println("arrayList(Hinzufügen löschen) : "+(end1 - start1) + "ms");
System.out.println("Nach dem Löschen: "+samplelist.size());
List<String> samplelist2 = new LinkedList<String>();
long start2 = System.currentTimeMillis();
for(int i =0; i < 30000; i++){
samplelist2.add(elem);
}
System.out.println("Nach Zugabe: "+samplelist2.size());
while(samplelist2.size() > 0){
samplelist2.remove(elem);
}
long end2 = System.currentTimeMillis();
System.out.println("linkedList(Hinzufügen löschen) : "+(end2 - start2) + "ms");
System.out.println("Nach dem Löschen: "+samplelist2.size());
}
}
Ergebnis.java
Nach Zugabe: 30000
arrayList(Hinzufügen löschen) : 78ms
Nach dem Löschen: 0
Nach Zugabe: 30000
linkedList(Hinzufügen löschen) : 21ms
Nach dem Löschen: 0
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
public static void main(String[] args) {
String elem = "elem";
// arrayList
List<String> samplelist = new ArrayList<String>();
long start1 = System.currentTimeMillis();
//300.000 hinzugefügt
for(int i =0; i < 300000; i++){
samplelist.add(elem);
}
System.out.println("Nach Zugabe: "+samplelist.size());
//Holen Sie sich 300.000
for(int i = 0; i < samplelist.size(); i++){
samplelist.get(i);
}
//Geben Sie die Zeit aus, die für die zusätzliche Erfassung benötigt wird
long half1 = System.currentTimeMillis();
System.out.println("arrayList(Zusätzliche Akquisition) : "+(half1 - start1) + "ms");
//300.000 löschen
while(samplelist.size() > 0){
samplelist.remove(elem);
}
//Geben Sie die Zeit aus, die vom Hinzufügen bis zum Löschen benötigt wird
long end1 = System.currentTimeMillis();
System.out.println("arrayList(Akquisition hinzufügen löschen) : "+(end1 - start1) + "ms");
System.out.println("Nach dem Löschen: "+samplelist.size());
// linkedList
List<String> samplelist2 = new LinkedList<String>();
long start2 = System.currentTimeMillis();
//300.000 hinzugefügt
for(int i =0; i < 300000; i++){
samplelist2.add(elem);
}
System.out.println("Nach Zugabe: "+samplelist2.size());
//Holen Sie sich 300.000
for(int i = 0; i < samplelist2.size(); i++){
samplelist2.get(i);
}
//Geben Sie die Zeit aus, die für die zusätzliche Erfassung benötigt wird
long half2 = System.currentTimeMillis();
System.out.println("linkedList(Zusätzliche Akquisition) : "+(half2 - start2) + "ms");
//300.000 löschen
while(samplelist2.size() > 0){
samplelist2.remove(elem);
}
//Geben Sie die Zeit aus, die vom Hinzufügen bis zum Löschen benötigt wird
long end2 = System.currentTimeMillis();
System.out.println("linkedList(Akquisition hinzufügen löschen) : "+(end2 - start2) + "ms");
System.out.println("Nach dem Löschen: "+samplelist2.size());
}
}
Ergebnis.java
Nach Zugabe: 300000
arrayList(Zusätzliche Akquisition) : 34ms
arrayList(Akquisition hinzufügen löschen) : 5152ms
Nach dem Löschen: 0
Nach Zugabe: 300000
linkedList(Zusätzliche Akquisition) : 37727ms
linkedList(Akquisition hinzufügen löschen) : 37745ms
Nach dem Löschen: 0
Recommended Posts