J'utilisais ArrayList à cause de la mort cérébrale, mais il semble qu'il y ait en fait diverses choses.
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");
}
}
résultat
Linked : 19082700 ns
Array : 14878000 ns
Bon, je ne peux rien dire car le nombre de fois est petit, mais il semble que LinkedList soit plus rapide si seulement ajouter
Cependant, il semble qu'Array soit plus rapide pour intégrer des éléments spécifiques tels que get (0).
Si vous voulez juste créer une liste et une boucle for, vous pouvez utiliser LinkedList, et si vous voulez utiliser beaucoup d'ordre, c'est comme Array.
S'il y a de la capacité de réserve, je serais heureux si de tels problèmes mineurs de performance pouvaient être considérés.
Recommended Posts