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: Découverte de MySQL : Procédures stockées 2024, Novembre
Anonim

Arraylist vs Vector

Une liste de tableaux peut être considérée comme un tableau dynamique, dont la taille peut croître. 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 alloués et peuvent être utilisés lorsque la taille requise du stockage n'est pas connue avant l'exécution.

Qu'est-ce qu'une Arraylist ?

Une liste de tableaux peut être considérée comme un tableau dynamique, dont la taille peut croître. Par conséquent, les listes de tableaux sont idéales pour être utilisées dans une situation où vous ne connaissez pas la taille des éléments requis au moment de la déclaration. En Java, les listes de tableaux ne peuvent contenir que des objets, elles ne peuvent pas contenir directement des types primitifs (vous pouvez placer les types primitifs dans un objet ou utiliser les classes wrapper des types primitifs). Généralement, les listes de tableaux sont fournies 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 listes de tableaux peuvent être parcourues à l'aide de boucles foreach, d'itérateurs ou simplement à l'aide des index. En Java, les listes de tableaux ont été introduites à partir de la version 1.2 et font partie du Java Collections Framework.

Qu'est-ce qu'un vecteur ?

Vector est également un tableau dont la taille peut augmenter. Les vecteurs peuvent être facilement alloué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, les vecteurs ont été inclus depuis la première version de Java.

Quelle est la différence entre Arraylist et Vector ?

Même si les listes de tableaux 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 listes de tableaux et les vecteurs est que les vecteurs sont synchronisés alors que les listes de tableaux ne sont pas synchronisées. Par conséquent, l'utilisation de listes de tableaux dans des environnements multithreads ne conviendra pas, tandis que les vecteurs peuvent être utilisés en toute sécurité dans des environnements multithreads (puisqu'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 à un seul thread. En interne, les listes de tableaux et les vecteurs utilisent des tableaux pour contenir des objets. Lorsque l'espace actuel n'est pas suffisant, les vecteurs doublent la taille de son tableau interne, tandis que les listes de tableaux augmentent la taille de son tableau interne de 50 %. Mais lorsque vous utilisez à la fois les listes de tableaux et les vecteurs, en donnant une capacité initiale appropriée, un redimensionnement inutile du tableau 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.

Conseillé: