Une collection est une boîte qui peut stocker plusieurs éléments tels que ʻArrayList et LinkedList.  Cette fois, j'écrirai sur les deux collections suivantes. La réponse est écrite dans le livre de référence, mais je voudrais l'essayer par moi-même et en faire l'expérience. Si possible, comparez-le à la séquence.  ・ ʻArrayList
・ LinkedList
L'addition est un peu plus rapide avec ʻArrayList. (LinkedList est également assez rapide)  L'acquisition est beaucoup plus rapide avec ʻArrayList.
La suppression est de loin la LinkedList la plus rapide.
Puisqu'il faut beaucoup de temps pour obtenir la LinkedList
Lors de la création d'une liste avec acquisition, je pense que ʻArrayList` est bien.
Ajouter x Obtenir=> `ArrayList`
Ajouter x Supprimer=> `LinkedList`
Ajouter x Obtenir x Supprimer=> `ArrayList`
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
    public static void main(String[] args) {
        //Commencer à mesurer le tableau
        long arrayStart = System.currentTimeMillis();
        //Préparation
        List<String> addArrayList = new ArrayList<String>();
        //Traitement supplémentaire
        for (int num = 0; num<1000000; num++) {
            addArrayList.add("élément");
        }
        //Fin de la mesure de arrayList
        long arrayEnd = System.currentTimeMillis();
        System.out.println("arrayList(ajouter à) : "+(arrayEnd - arrayStart)  + "ms");
        //Confirmer la quantité supplémentaire
        int arraylistSize = addArrayList.size();
        System.out.println(arraylistSize);
        //Commencer à mesurer linkedList
        long linkedStart = System.currentTimeMillis();
        //Préparation
        List<String> addLinkedList = new LinkedList<String>();
        //Traitement supplémentaire
        for (int num = 0; num<1000000; num++) {
            addLinkedList.add("élément");
        }
        //Fin de la mesure de linkedList
        long linkedEnd = System.currentTimeMillis();
        System.out.println("linkedList(ajouter à) : "+(linkedEnd - linkedStart)  + "ms");
        //Confirmer la quantité supplémentaire
        int linkedListSize = addLinkedList.size();
        System.out.println(linkedListSize);
    }
}
résultat.java
        arrayList(ajouter à) : 35ms
        1000000
        linkedList(ajouter à) : 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) {
        //Préparez une liste de 30000 éléments
        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);
        }
        //arrayList début de la mesure
        long arrayStart = System.currentTimeMillis();
        int num = 0;
        //Supprimer le processus
        while(array30000elems.size() > 0){
            num += 1;
            array30000elems.remove(elem);
        }
        System.out.println("temps de traitement: "+num+"Fois");
        long arrayEnd = System.currentTimeMillis();
        System.out.println("arrayList(Effacer) : "+(arrayEnd - arrayStart)  + "ms");
        //Démarrage de la mesure linkedList
        long linkedStart = System.currentTimeMillis();
        int num2 = 0;
        //Supprimer le processus
        while(linked30000elems.size() > 0){
            num2 += 1;
            linked30000elems.remove(elem);
        }
        System.out.println("temps de traitement: "+num2+"Fois");
        long linkedEnd = System.currentTimeMillis();
        System.out.println("linkedList(Effacer) : "+(linkedEnd - linkedStart)+"ms");
    }
        
}
résultat.java
temps de traitement:300 000 fois
        arrayList(Effacer) : 5387ms
temps de traitement:300 000 fois
        linkedList(Effacer) : 16ms
CompareList.java
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class CompareList {
    public static void main(String[] args) {
        //Préparez une liste de 30000 éléments
        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);
        }
        //arrayList début de la mesure
        int count = 0;
        long arrayStart = System.currentTimeMillis();
        //Processus d'acquisition
        for(int i = 0; i < array30000elems.size(); i++){
            count += 1;
            array30000elems.get(i);
        }
        long arrayEnd = System.currentTimeMillis();
        System.out.println("arrayList(Avoir) : "+(arrayEnd - arrayStart)  + "ms");
        System.out.println("temps de traitement: "+count+"Fois");
        //Démarrage de la mesure linkedList
        int count2 = 0;
        long linkedStart = System.currentTimeMillis();
        //Processus d'acquisition
        for(int i = 0; i < linked30000elems.size(); i++){
            count2 += 1;
            linked30000elems.get(i);
        }
        long linkedEnd = System.currentTimeMillis();
        System.out.println("linkedList(Avoir) : "+(linkedEnd - linkedStart)  + "ms");
        System.out.println("temps de traitement: "+count2+"Fois");
    }
        
}
résultat.java
        arrayList(Avoir) : 7ms
temps de traitement:300 000 fois
        linkedList(Avoir) : 38475ms
temps de traitement:300 000 fois
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("Après l'addition: "+samplelist.size());
        while(samplelist.size() > 0){
            samplelist.remove(elem);
        }
        long end1 = System.currentTimeMillis();
        System.out.println("arrayList(Ajouter supprimer) : "+(end1 - start1)  + "ms");
        System.out.println("Après suppression: "+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("Après l'addition: "+samplelist2.size());
        while(samplelist2.size() > 0){
            samplelist2.remove(elem);
        }
        long end2 = System.currentTimeMillis();
        System.out.println("linkedList(Ajouter supprimer) : "+(end2 - start2)  + "ms");
        System.out.println("Après suppression: "+samplelist2.size());
    }
        
}
résultat.java
Après l'addition: 30000
        arrayList(Ajouter supprimer) : 78ms
Après suppression: 0
Après l'addition: 30000
        linkedList(Ajouter supprimer) : 21ms
Après suppression: 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();
        //300000 ajoutés
        for(int i =0; i < 300000; i++){
            samplelist.add(elem);
        }
        System.out.println("Après l'addition: "+samplelist.size());
        //Obtenez 300 000
        for(int i = 0; i < samplelist.size(); i++){
            samplelist.get(i);
        }
        //Sortie du temps nécessaire à l'acquisition supplémentaire
        long half1 = System.currentTimeMillis();
        System.out.println("arrayList(Acquisition supplémentaire) : "+(half1 - start1)  + "ms");
        //Supprimer 300 000
        while(samplelist.size() > 0){
            samplelist.remove(elem);
        }
        //Afficher le temps écoulé entre l'ajout et la suppression
        long end1 = System.currentTimeMillis();
        System.out.println("arrayList(Ajouter la suppression d'acquisition) : "+(end1 - start1)  + "ms");
        System.out.println("Après suppression: "+samplelist.size());
        // linkedList
        List<String> samplelist2 = new LinkedList<String>();
        long start2 = System.currentTimeMillis();
        //300000 ajoutés
        for(int i =0; i < 300000; i++){
            samplelist2.add(elem);
        }
        System.out.println("Après l'addition: "+samplelist2.size());
        //Obtenez 300 000
        for(int i = 0; i < samplelist2.size(); i++){
            samplelist2.get(i);
        }
        //Sortie du temps nécessaire à l'acquisition supplémentaire
        long half2 = System.currentTimeMillis();
        System.out.println("linkedList(Acquisition supplémentaire) : "+(half2 - start2)  + "ms");
        //Supprimer 300 000
        while(samplelist2.size() > 0){
            samplelist2.remove(elem);
        }
        //Afficher le temps écoulé entre l'ajout et la suppression
        long end2 = System.currentTimeMillis();
        System.out.println("linkedList(Ajouter la suppression d'acquisition) : "+(end2 - start2)  + "ms");
        System.out.println("Après suppression: "+samplelist2.size());
    }
        
}
résultat.java
Après l'addition: 300000
        arrayList(Acquisition supplémentaire) : 34ms
        arrayList(Ajouter la suppression d'acquisition) : 5152ms
Après suppression: 0
Après l'addition: 300000
        linkedList(Acquisition supplémentaire) : 37727ms
        linkedList(Ajouter la suppression d'acquisition) : 37745ms
Après suppression: 0
        Recommended Posts