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\nZum 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\nMap<Integer, String> students = new HashMap<>();\nstudents.put(3, "Anna");\nstudents.put(1, "Ivan");\nstudents.put(2, "Maria");\nSystem.out.println(students);\n\nDie 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\nAußerdem habe ich gehört, dass sie unterschiedliche