Tableau de comparaison
Base de comparaison | liste | ArrayList |
---|---|---|
De base | La liste est une interface | ArrayList est une classe de collection standard. |
Syntaxe | liste d'interface | classe ArrayList |
Étendre / Implémenter | L'interface de liste étend Collection Framework. | ArrayList étend AbstractList et implémente une interface de liste. |
Espace de noms | System.Collections.Generic. | System.Collections. |
Travail | Il est utilisé pour créer une liste d'éléments (objets) associés à leurs numéros d'index. | ArrayList est utilisé pour créer un tableau dynamique contenant des objets. |
Définition de liste
List est une interface qui étend le framework Collection . L'interface de liste décrit la collection d'éléments organisés séquentiellement. L'interface de liste est implémentée par les classes de collection standard suivantes, telles que ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack . L'interface de liste comporte des éléments associés à leurs numéros d'index. Vous pouvez accéder à un élément de la liste par sa position (index) dans la liste. Une liste créée à l'aide de l'interface List commence par un index de base zéro.
En plus des méthodes héritées par la structure Collection, l'interface List définit également une méthode qui lui est propre. Les méthodes ajoutées par l'interface List sont, add (int, E) et addAll (int, Collection) . Ces méthodes ajoutent un élément à la liste par leur index. Les méthodes de la liste peuvent générer une exception telle que UnsupportedOperationException si la méthode ne peut pas modifier la liste. Lorsqu'un objet d'une liste est incompatible avec un autre objet de la liste, une exception ClassCastException est levée. Les éléments Null ne sont pas autorisés dans la liste si vous essayez d'insérer un objet null dans la liste. Une exception NullPointerException est émise .
Vous pouvez obtenir un élément de la liste en utilisant la méthode get () . Vous pouvez définir la valeur d'un élément de la liste à l'aide de la méthode set () . Vous pouvez également obtenir la sous-liste de la liste en utilisant une méthode sublist () . Il devient pratique d’opérer sur la sous-liste plutôt que sur une liste.
Définition de ArrayList
Une des classes standard de Collection est ArrayList qui étend la classe AbstractList et implémente également l'interface List . La classe ArrayList est utilisée pour créer les tableaux dynamiques qui se développent et se rétrécissent chaque fois que nécessaire. La liste créée à l'aide de la classe ArrayList n'est rien d'autre que le tableau d'objets. En Java, le tableau standard a la longueur fixe, vous devez donc connaître la taille du tableau à l'avance. Cependant, il se peut que vous ne sachiez pas de quelle longueur du tableau vous avez besoin jusqu'au moment de l'exécution. Par conséquent, Collection Framework a introduit la classe ArrayList pour résoudre ce problème.
ArrayList a des constructeurs qui créent le tableau avec sa capacité initiale. Bien que la capacité de l'objet de la classe ArrayList augmente automatiquement lorsque des éléments sont ajoutés au tableau, vous pouvez toujours augmenter manuellement la capacité de l'objet de ArrayList à l'aide de la méthode EnsureCapacity () . Il est préférable d'augmenter la capacité de la matrice au départ plutôt que de réaffecter la mémoire plus tard. Parce que la réaffectation est plus coûteuse que l’allocation immédiate de la mémoire.
Différences clés entre List et ArrayList
- L'une des différences les plus importantes entre List et ArrayList est que list est une interface et ArrayList est une classe Collection standard.
- L'interface de liste étend le cadre de la collection tandis que la classe ArrayList étend la classe AbstractList et implémente les interfaces de liste .
- L'espace de noms pour l'interface de liste est System.Collection.Generic, tandis que l'espace de noms pour ArrayList est System.Collection .
- Interface de liste crée une collection d’éléments stockés dans une séquence et identifiés ou accessibles par leur numéro d’index. D'autre part, ArrayList crée un tableau d'objets dans lequel il peut s'agrandir de manière dynamique si nécessaire.
Conclusion:
ArrayList résout le problème d'un tableau statique en Java standard, c'est-à-dire que la taille du tableau ne peut pas croître une fois créé. Lorsqu'un tableau est créé à l'aide de ArrayList, un tableau dynamique est créé, dont la taille peut augmenter ou diminuer en cas de besoin. La classe standard Collection ArrayList étend l'interface List.