[Java] Ordre de conservation des valeurs définies de HashMap, TreeMap, LinkedHashMap

[Java] Ordre de conservation des valeurs définies de HashMap, TreeMap, LinkedHashMap

Il existe plusieurs types de Map, mais il y a une différence dans l'ordre dans lequel les valeurs stockées sont conservées (dans quel ordre elles sont sorties). Je l'ai résumé des cartes que je vois souvent (personnellement). Je pense que la carte à utiliser est souvent sélectionnée en raison de cette différence de caractéristiques.

HashMap TreeMap LinkedHashMap
Ordre indéfini Ordre croissant des clés Ordre d'inscription

Je l'ai vérifié ci-dessous.

test.java


public static void main(String[] args) {
	final int key = 0;
	final int value = 1;
	HashMap<String,String> hashMap = new HashMap<String,String>();
	TreeMap<String,String> treeMap = new TreeMap<String,String>();
	LinkedHashMap<String,String> linkedHashMap = new LinkedHashMap<String,String>();

	String[][] keyValue = {{"Japan","America","China","Korea","India"},
							{"Tokyo","Washington D.C.","Beijing","Seoul","New Delhi"}};

	for(int i = 0; i < keyValue[key].length; i++) {
		hashMap.put(keyValue[key][i], keyValue[value][i]);
		treeMap.put(keyValue[key][i], keyValue[value][i]);
		linkedHashMap.put(keyValue[key][i], keyValue[value][i]);
	}
	System.out.println("Sortez le résultat de HashMap!");
	for(String hashMapKey : hashMap.keySet()) {
		System.out.println( hashMapKey +"La capitale de"+ hashMap.get(hashMapKey) + "est.");
		}
	System.out.println();

	System.out.println("Sortez le résultat de TreeMap!");
	for(String treeMapKey :treeMap.keySet()) {
		System.out.println( treeMapKey +"La capitale de"+ treeMap.get(treeMapKey) + "est.");
	}
	System.out.println();

	System.out.println("Sortez le résultat de LinkedHashMap!");
	for(String linkedHashMapKey : linkedHashMap.keySet()) {
		System.out.println( linkedHashMapKey +"La capitale de"+ linkedHashMap.get(linkedHashMapKey) + "est.");
	}
}

Résultat d'exécution


Sortez le résultat de HashMap!
La capitale du Japon est Tokyo.
La capitale de la Chine est Pékin.
La capitale de l'Amérique est Washington D.C.est.
La capitale de la Corée est Séoul.
La capitale de l'Inde est New Delhi.

Sortez le résultat de TreeMap!
La capitale de l'Amérique est Washington D.C.est.
La capitale de la Chine est Pékin.
La capitale de l'Inde est New Delhi.
La capitale du Japon est Tokyo.
La capitale de la Corée est Séoul.

Sortez le résultat de LinkedHashMap!
La capitale du Japon est Tokyo.
La capitale de l'Amérique est Washington D.C.est.
La capitale de la Chine est Pékin.
La capitale de la Corée est Séoul.
La capitale de l'Inde est New Delhi.

Par conséquent, il a été confirmé que HashMap est dans un ordre indéfini, TreeMap est dans l'ordre croissant des clés (cette fois dans l'ordre croissant de l'alphabet) et LinkedHashMap est dans l'ordre d'enregistrement. Eh bien, je l'oublie à chaque fois.

Recommended Posts

[Java] Ordre de conservation des valeurs définies de HashMap, TreeMap, LinkedHashMap
Trier les valeurs de la carte par ordre croissant des clés dans Java TreeMap
Java (ensemble)
Classe Java HashMap