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.