Avatar ·

Was ist der Unterschied zwischen HashMap, LinkedHashMap und TreeMap in Java?

Hallo zusammen! Ich habe gerade angefangen, Java zu lernen, und bin bei der Arbeit mit Maps auf ein Problem gestoßen. Es gibt drei Hauptimplementierungen: HashMap, LinkedHashMap und TreeMap. Ich habe die Dokumentation gelesen, verstehe aber nicht ganz, wann ich welche verwenden soll.

\n\n

Zum Beispiel habe ich eine Aufgabe: Ich muss eine Liste von Studenten mit ihren IDs speichern (Key — Integer, Value — String). Ich habe folgenden Code geschrieben:

\n\n
Map<Integer, String> students = new HashMap<>();\nstudents.put(3, "Anna");\nstudents.put(1, "Ivan");\nstudents.put(2, "Maria");\nSystem.out.println(students);
\n\n

Die Ausgabe war unsortiert: {1=Ivan, 2=Maria, 3=Anna}. Warum stimmt die Reihenfolge nicht mit der Einfügereihenfolge überein? Und was passiert, wenn ich HashMap durch LinkedHashMap oder TreeMap ersetze?

\n\n

Außerdem habe ich gehört, dass sie unterschiedliche