[JAVA] LinkedList und ArrayList

Was ist eine Liste?

Ich habe ArrayList wegen des Hirntods verwendet, aber es scheint, dass es tatsächlich verschiedene Dinge gibt.

LinkedArrayListTest.java


package listTest;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class LinkedArrayListTest {
	
	public static void main(String[] args) {
		measure(1000000);
	}
	
	private static void linked(int num) {
		List<String> list = new LinkedList<>();
		for (int i = 0; i < num; i++) {
			list.add("asd");
		}
	}
	
	private static void array(int num) {
		List<String> list = new ArrayList<>();
		for (int i = 0; i < num; i++) {
			list.add("asd");
		}
	}
	
	public static void measure(int num) {
		Long start = System.nanoTime();
		linked(num);
		Long middle = System.nanoTime();
		array(num);
		Long end = System.nanoTime();
		System.out.println("Linked : " + (middle - start) + " ns\r\nArray : " + (end - middle) + " ns");
	}
}

Ergebnis

Linked : 19082700 ns
Array  : 14878000 ns

Nun, ich kann nichts sagen, weil die Anzahl der Male gering ist, aber es scheint, dass LinkedList schneller ist, wenn man nur hinzufügt

Es scheint jedoch, dass Array bestimmte Elemente wie get (0) schneller einbringt.

Wenn Sie nur eine Liste und eine for-Schleife erstellen möchten, können Sie LinkedList verwenden. Wenn Sie viel Reihenfolge verwenden möchten, ist dies wie bei Array.

Wenn noch Kapazitätsreserven vorhanden sind, würde ich mich freuen, wenn solche geringfügigen Leistungsprobleme in Betracht gezogen werden könnten.

Recommended Posts

LinkedList und ArrayList
Unterschied zwischen ArrayList und LinkedList
Anordnungsliste
Java ArrayList, Vector, LinkedList Vergleich
Unterschied zwischen List und ArrayList
[Java] Unterschied zwischen Array und ArrayList
Informationen zu removeAll und RetainAll von ArrayList
[Übung] ArrayList
== und gleich
[Übung] ArrayList
ArrayList-Praxis
Unterschied zwischen EMPTY_ELEMENTDATA und DEFAULTCAPACITY_EMPTY_ELEMENTDATA in ArrayList
Sortieren Sie ArrayList durch Ziehen und Ablegen von ItemTouchHelper
ArrayList-Klasse