ArrayList vs HashMap

ArrayList et HashMap sont deux classes de collection en Java. Même s'ils ont le même rôle de collectionner et organiser les données, la manière dont ils sauvegardent et traitent les données est différent. Dans cette article nous allons vois les différences et les similitudes entre les deux.

Différence entre ArrayList et HashMap en Java

L'une des différences importante entre la classe HashMap et ArrayList est que la première est l'implémentation de table de hachage et la deuxième est un tableau dynamique qui peut se redimensionner. HashMap et ArrayList sont les deux classes les plus populaires du framework java collection. Les deux sont utilisés dans le stockages des informations et leurs implémentation, utilisation est complètement différent.
La différence principale entre ArrayList et HashMap est que ArrayList est basé sur la structure de l'index de tableau tandis que HashMap est une structure d'une map qui utilise le hachage pour extraire les valeurs.

Quelques différences cruciales entre ArrayList et HashMap:
  • La première différence entre ArrayList et HashMap est que ArrayList implémente L'interface List tandis que HashMap implémente l'interface Map en Java.
  • ArrayList sauvegarde un objet à la fois tandis que HashMap sauvegarde la clé et la valeurs<key,value>.
  • ArrayList maintient l'ordre des objets ajoutés. HashMap ne garantie pas cette fonctionnalité.
  • ArrayList autorise l'insertion des objets en double mais HashMap ne permet pas l'insertion deux fois la même clé mais elle le permet pour les valeurs de cette clé.
  • La compléxité de la méthode get(index) de ArrayList est O(1) mais HashMap get(key) peut être O(1) dans le meilleur cas et O(n) dans les pires cas.

Similitudes entre ArrayList et HashMap en Java

Voici quelques points en commun entre ArrayList et HashMap en java:
  • ArrayList et HashMap ne sont pas synchronisés. Vous ne devez pas les utiliser dans un programme multi-threading sans une synchronisation externe.
  • L'itération de ArrayList et HashMap peut déclencher un ConcurrentModificationException si un changement de structure vient de se produire une fois Iterator est créé.
  • ArrayList autorise nullHashMap autorise null pour les clés et les valeurs.
  • ArrayList autorise les éléments dupliqués et HashMap autorise les valeurs dupliqués.
  • En terme de performance ArrayList a un temps constant pour la lecture si vous connaissez l'index avec la méthode get() similaire à HashMap qui a aussi un temps de lecture constant.
  • L'implémentation de ArrayList et HashMap est basée sur un tableau.
  • Les deux collections ArrayList et HashMap peuvent être parcourues avec Iterator.



Partager cet article

Voir aussi: