Différence Entre Arraylist Et Vector

Différence Entre Arraylist Et Vector
Différence Entre Arraylist Et Vector

Vidéo: Différence Entre Arraylist Et Vector

Vidéo: Différence Entre Arraylist Et Vector
Vidéo: Java Cours 109 درس جافا Les Collections partie 6 Vector لماذا يجب استعمال ArrayList غالبا 2024, Novembre
Anonim

Arraylist vs vecteur

Un arraylist peut être considéré comme un tableau dynamique, dont la taille peut augmenter. Pour cette raison, le programmeur n'a pas besoin de connaître la taille de l'arraylist lorsqu'il la définit. Le vecteur peut également être considéré comme un tableau dont la taille peut augmenter. Les vecteurs peuvent être facilement attribués et peuvent être utilisés lorsque la taille requise du stockage n'est pas connue avant l'exécution.

Qu'est-ce qu'un Arraylist?

Un arraylist peut être considéré comme un tableau dynamique, dont la taille peut augmenter. Par conséquent, les arraylists sont idéaux pour être utilisés dans des situations où vous ne connaissez pas la taille des éléments requis au moment de la déclaration. En Java, les arraylists ne peuvent contenir que des objets, ils ne peuvent pas contenir de types primitifs directement (vous pouvez placer les types primitifs dans un objet ou utiliser les classes wrapper des types primitifs). En général, les arraylists sont fournis avec des méthodes pour effectuer l'insertion, la suppression et la recherche. La complexité temporelle de l'accès à un élément est o (1), tandis que l'insertion et la suppression ont une complexité temporelle de o (n). En Java, les arraylists peuvent être parcourus en utilisant des boucles foreach, des itérateurs ou simplement en utilisant les index. En Java, les arraylists ont été introduits à partir de la version 1.2 et font partie du Java Collections Framework.

Qu'est-ce qu'un vecteur?

Vector est également un tableau qui peut grossir. Les vecteurs peuvent être facilement attribués et peuvent être utilisés lorsque la taille requise du stockage n'est pas connue avant l'exécution. Les vecteurs ne peuvent également contenir que des objets et ne peuvent pas contenir de types primitifs. Les vecteurs sont synchronisés et peuvent donc être utilisés en toute sécurité dans des environnements multithreads. Les vecteurs sont fournis avec des méthodes pour ajouter des objets, supprimer des objets et rechercher des objets. Semblable à arraylist en java, les vecteurs peuvent être parcourus en utilisant des boucles foreach, des itérateurs ou simplement en utilisant les index. En ce qui concerne Java, des vecteurs ont été inclus depuis la première version de Java.

Quelle est la différence entre Arraylist et Vector?

Même si les arraylists et les vecteurs sont très similaires aux tableaux dynamiques dont la taille peut augmenter, ils présentent des différences importantes. La principale différence entre les arraylists et les vecteurs est que les vecteurs sont synchronisés tandis que les arraylists ne sont pas synchronisés. Par conséquent, l'utilisation de arraylists dans des environnements multithread ne convient pas, tandis que les vecteurs peuvent être utilisés en toute sécurité dans des environnements multithread (car ils sont thread-safe). Mais la synchronisation dans les vecteurs entraînerait une réduction des performances. Par conséquent, il ne serait pas judicieux d'utiliser des vecteurs dans un environnement à thread unique. En interne, les arraylists et les vecteurs utilisent des tableaux pour contenir des objets. Lorsque l'espace actuel n'est pas suffisant, les vecteurs doubleront la taille de son tableau interne, tandis que les arraylists augmenteront la taille de son tableau interne de 50%. Mais lors de l'utilisation à la fois des arraylists et des vecteurs, en donnant une capacité initiale appropriée, un redimensionnement inutile du réseau interne peut être évité. Dans une situation où le taux de croissance des données est connu, l'utilisation de vecteurs serait plus appropriée puisque la valeur incrémentielle des vecteurs pourrait être définie.

Recommandé: