Différence entre ArrayList et Vector en Java
Contenu
ArrayList et Vector sont les classes de la hiérarchie Collection Framework. ArrayList et Vector sont utilisés pour créer un tableau dynamique d’objets, dont la taille peut augmenter en fonction des besoins. ArrayList et Vector se distinguent par le fait que Vector appartient à des classes héritées qui ont été réorganisées par la suite pour prendre en charge les classes de collection, tandis qu'un ArrayList est une classe de collection standard. Une autre différence importante est que ArrayList n'est pas synchronisé. Le vecteur est synchronisé.
Étudions d’autres différences à l’aide du tableau de comparaison ci-dessous.
- Tableau de comparaison
- Définition
- Différences Clés
- Similitudes
- Conclusion
Tableau de comparaison
Base de comparaison | ArrayList | Vecteur |
---|---|---|
De base | La classe ArrayList n'est pas synchronisée. | La classe de vecteur est synchronisée. |
Classe d'héritage | ArrayList est une classe Collection standard. | Vector est une classe héritée, repensée pour prendre en charge la classe de collection. |
Déclaration de classe | classe ArrayList | vecteur de classe |
Réallocation | Lorsqu'elle n'est pas spécifiée, une liste de tableaux est incrémentée de moitié. | Lorsqu'il n'est pas spécifié, un vecteur est incrémenté pour doubler sa taille. |
Performance | Comme ArrayList n'est pas synchronisé, il fonctionne plus rapidement que Vector. | Comme Vector est synchronisé, il fonctionne plus lentement que ArrayList. |
Énumération / Itérateur | ArrayList utilise l'interface Iterator pour parcourir les objets stockés dans ArrayList. | Vector utilise Enumeration ainsi que l'interface Iterator pour parcourir les objets stockés dans Vectors. |
Définition de ArrayList
ArrayList appartient à la liste des classes de collection standard. La classe ArrayList est définie à l'intérieur du java.util forfait, il étend la AbstractList qui est aussi une classe de collection standard, et implémente aussi liste, une interface définie dans Collection Interfaces. En Java, un tableau standard a toujours une longueur fixe. Cela signifie une fois créé; il ne grossit ni ne diminue de façon dynamique. Donc, vous devriez avoir la connaissance préalable de la longueur du tableau que vous utilisez. Mais, parfois, il peut arriver que la longueur requise soit révélée au moment de l'exécution afin de gérer ce genre de situation, java a introduit ArrayList.
La classe ArrayList est utilisée pour la création dynamique d'un tableau contenant les références aux objets. Ce tableau pourrait croître en taille au besoin. La déclaration de classe est la suivante:
classe ArrayList Ici, E spécifie le type d'objets qu'un tableau va contenir. Le tableau créé a une longueur variable et sa taille augmente et diminue lorsque des objets sont ajoutés ou supprimés de la liste. La liste de tableaux n'est pas synchronisée, cela signifie que plusieurs threads peuvent fonctionner sur le tableau en même temps. Par exemple, si un thread ajoute une référence d'objet au tableau et qu'un autre thread supprime une référence d'objet du même tableau au même moment. La création d'un tableau dynamique utilisant la classe ArrayList: ArrayList Dans le code ci-dessus, vous pouvez voir cela; J'ai créé un tableau d'objets de type chaîne. J'ai ajouté des objets au tableau S1 à l'aide de la méthode add (), puis supprimé certains objets à l'aide de la méthode remove (). Vous pouvez observer que si vous ne spécifiez pas la taille initiale du tableau, celui-ci sera de longueur «0». Comme vous pouvez le voir, la taille du tableau augmente et diminue au fur et à mesure que vous ajoutez et supprimez les éléments. Vector est une classe Legacy qui est réorganisée pour prendre en charge la classe de collection dans la hiérarchie Collection Framework. La classe de vecteur est également définie dans java.util forfait, prolongé de AbstractList classe et mis en œuvre par le liste interface. La classe Vector est déclarée comme suit: vecteur de classe Ici, le E définit le type d'objet qui sera stocké dans un tableau. Un tableau créé en utilisant la classe Vector est de longueur variable. Il augmente le double de sa taille si l'incrément n'est pas spécifié. Comprenons la création de tableau en utilisant Vector. Vecteur Dans le code ci-dessus, vous pouvez voir que j'ai notamment mentionné la taille et la valeur d'incrément du constructeur de Vector, tout en déclarant le tableau d'objets string. Par conséquent, vous pouvez constater que lorsque la limite du tableau se termine, il augmente de la valeur fournie au constructeur lors de la déclaration. Je conclus en disant que l’utilisation de ArrayList est préférable à l’utilisation de Vector car elle est plus rapide et plus performante.Définition du vecteur
Similitudes:
Conclusion: