Différence entre Arraylist et Linkedlist
Quelle est la différence entre Arraylist et Linkedlist ? – ArrayList et LinkedList, les deux implémentent l’interface List et maintiennent l’ordre d’insertion. Les deux sont des classes non synchronisées, et leurs méthodes sont presque identiques. Cependant, il y a quelques différences entre eux.
Définition de Arraylist
ArrayList implémente le concept d’un tableau dynamique, Arraylist maintient les index comme un tableau. Donc, si vous voulez effectué des opérations get() plus que put(), Arraylist est préférable. Regardons un exemple simple où nous utilisons ArrayList.
import java.util.*; class TestArray{ public static void main(String args[]){ //Créer un objet arraylist List<String> arr = new ArrayList<String>(); //Ajouter un objet dans arraylist arr.add("Alex"); arr.add("Bob"); arr.add("Thomas"); arr.add("Emily"); System.out.println("ArrayList: "+arr); } } La sortie ========== ArrayList: [Alex,Bob,Thomas,Emily]
Définition de Linkedlist
LinkedList implémente le concept de liste doublement chaînée. LinkedList maintien les pointeurs sur les éléments. vous ne pouvez pas accéder à un index spécifique comme dans Arraylist. Mais l’avantage de LinkedList est qu’elle n’a pas besoin de se déplacer comme dans l’Arraylist pour maintenir les indices continus. Donc, les opérations dans LinkedList sont coûteuses, car vous devrez passer par des pointeurs pour atteindre vos éléments, par contre les opérations put() ne sont pas coûteuses par rapport à Arraylist. Regardons un exemple simple où nous utilisons LinkedList.
import java.util.*; class TestArray{ public static void main(String args[]){ //Créer un objet Linkedlist List<String> arr = new LinkedList<String>(); //Ajouter un objet dans linkedlist arr.add("James"); arr.add("Sementa"); arr.add("Jenata"); arr.add("Mario"); System.out.println("LinkedList: "+arr); } } La sortie ========== LinkedList: [James,Sementa,Jenata,Mario]
Table de comparaison
Arraylist | Linkedlist | |
---|---|---|
1) | ArrayList utilise un tableau dynamique pour stocker les éléments. | LinkedList utilise une liste doublement chaînée pour stocker les éléments. |
2) | La manipulation avec ArrayList est lente car elle utilise en interne un tableau. Si un élément est supprimé du tableau, tous les bits sont déplacés en mémoire. | La manipulation avec LinkedList est plus rapide que ArrayList, car elle utilise une liste doublement chaînée, de sorte qu’aucun décalage de bit n’est requis en mémoire. |
3) | La classe ArrayList peut uniquement servir de liste car elle implémente uniquement List. | La classe LinkedList peut servir de liste et de file car elle implémente les interfaces List et Deque. |
4) | ArrayList est préférable pour stocker et accéder aux données. | LinkedList est préférable pour manipuler des données. |
Quand utiliser LinkedList et quand utiliser ArrayList?
- Comme expliqué ci-dessus, les opérations d’insertion et de suppression donnent de bonnes performances dans LinkedList par rapport à ArrayList. Par conséquent, s’il est nécessaire d’ajouter et de supprimer fréquemment dans l’application, LinkedList est le meilleur choix.
- Les opérations de recherche (méthode get) sont rapides dans Arraylist par rapport à LinkedList. Si les opérations d’ajout et de suppression sont moindres, ArrayList serait votre meilleur choix.
Nous avons donc couvert la différence entre Arraylist et LinkedList dans java. Si vous avez d’autres questions, N’hésitez pas à nous laisser vos commentaires !
C’est une explication fausse.
les opérations d’insertion et de suppression au milieu donnent de bonnes performances dans LinkedList. Parce-que si on insert ou supprime les éléments de début ou de la fin des ArrayList la duration des actions sont « constants ».