Maison  >  Article  >  Java  >  La différence entre la carte Java et la liste

La différence entre la carte Java et la liste

angryTom
angryTomoriginal
2019-11-18 11:24:145215parcourir

La différence entre la carte Java et la liste

La différence entre la carte Java et la liste

Carte (cartographie)

Map est une collection qui mappe des objets clés et des objets de valeur. Chaque élément contient un objet clé et un objet de valeur. Map a principalement les deux classes d'implémentation suivantes :

HashMap : HashMap est implémenté sur la base d'une table de hachage. Le coût d'insertion et d'interrogation de facteur via les performances du conteneur.

LinkedHashMap : similaire à HashMap, mais lors d'une itération, l'ordre dans lequel est obtenu est son ordre d'insertion, ou l'ordre le moins récemment utilisé (LRU).

TreeMap : TreeMap est implémenté sur la base d'arbres rouge-noir. Lors de l’affichage de , ils seront triés. TreeMap est la seule Map avec une méthode subMap(), qui peut renvoyer un sous-arbre.

List (list)

Les éléments de List sont stockés de manière linéaire et peuvent stocker des objets répétés. List a principalement les deux classes d'implémentation suivantes :

.

ArrayList : Un tableau de longueur variable, qui permet un accès aléatoire aux éléments. L'insertion et la suppression d'éléments dans ArrayList sont lentes. L'implémentation de l'expansion d'ArrayList dans JDK8 consiste à utiliser l'instruction newCapacity = oldCapacity + (oldCapacity >> 1) (c'est-à-dire une expansion de 1,5 fois) dans la méthode grow() pour calculer la capacité, puis à appeler Arrays.copyof() méthode pour copier le tableau d’origine.

LinkedList : grâce à la structure de données de liste chaînée, l'insertion et la suppression sont rapides, mais la vitesse d'accès est lente.

比较 List Map
继承接口 Collection
常见实现类 AbstractList(其常用子类有ArrayList、LinkedList、Vector) HashMap、HashTable
常见方法 add( )、remove( )、clear( )、get( )、contains( )、size( ) put( )、get( )、remove( )、clear( )、containsKey( )、containsValue( )、keySet( )、values( )、size( )
元素 可重复 不可重复
顺序 有序
线程安全 Vector线程安全 Hashtable线程安全

Site Web chinois php, un grand nombre de Tutoriels d'introduction à Java gratuits, bienvenue pour apprendre en ligne !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn