Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Interview question

What is the difference between HashMap, LinkedHashMap, and TreeMap? HashMap, LinkedHashMap, और TreeMap में क्या अंतर है?

Answer
ClassOrderingPerformanceNull keys
HashMapNo guaranteed orderO(1) average for get/putOne null key allowed
LinkedHashMapInsertion order (or access order if configured)O(1) average, slight overhead over HashMapOne null key allowed
TreeMapSorted by key (natural order or Comparator)O(log n) for get/putNo null keys (NullPointerException)
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put('c', 3); hashMap.put('a', 1); hashMap.put('b', 2);
System.out.println(hashMap);  // order not guaranteed

Map<String, Integer> linkedMap = new LinkedHashMap<>();
linkedMap.put('c', 3); linkedMap.put('a', 1); linkedMap.put('b', 2);
System.out.println(linkedMap);  // {c=3, a=1, b=2} - insertion order preserved

Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put('c', 3); treeMap.put('a', 1); treeMap.put('b', 2);
System.out.println(treeMap);  // {a=1, b=2, c=3} - sorted by key

// TreeMap with a custom Comparator
Map<String, Integer> reverseMap = new TreeMap<>(Comparator.reverseOrder());
reverseMap.putAll(treeMap);
System.out.println(reverseMap);  // {c=3, b=2, a=1}
ClassOrderingPerformance
HashMapकोई guaranteed order नहींO(1) average
LinkedHashMapInsertion orderO(1) average
TreeMapKey से sortedO(log n)
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put('c', 3); hashMap.put('a', 1); hashMap.put('b', 2);

Map<String, Integer> linkedMap = new LinkedHashMap<>();
linkedMap.put('c', 3); linkedMap.put('a', 1); linkedMap.put('b', 2);
System.out.println(linkedMap);  // insertion order

Map<String, Integer> treeMap = new TreeMap<>();
treeMap.put('c', 3); treeMap.put('a', 1); treeMap.put('b', 2);
System.out.println(treeMap);  // sorted by key

Map<String, Integer> reverseMap = new TreeMap<>(Comparator.reverseOrder());
reverseMap.putAll(treeMap);

Was this answer clear?