Subjects

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

What is the difference between HashSet, LinkedHashSet, and TreeSet? HashSet, LinkedHashSet, और TreeSet में क्या अंतर है?

Answer

All three implement the Set interface (no duplicates), but differ in ordering guarantees and underlying implementation, since Set implementations are typically backed by a corresponding Map.

ClassBacked byOrder
HashSetHashMapNo guaranteed order
LinkedHashSetLinkedHashMapInsertion order
TreeSetTreeMap (via NavigableMap)Sorted order
Set<String> hashSet = new HashSet<>();
hashSet.add('cherry'); hashSet.add('apple'); hashSet.add('banana');
System.out.println(hashSet);  // order not guaranteed

Set<String> linkedSet = new LinkedHashSet<>();
linkedSet.add('cherry'); linkedSet.add('apple'); linkedSet.add('banana');
System.out.println(linkedSet);  // [cherry, apple, banana] - insertion order

Set<String> treeSet = new TreeSet<>();
treeSet.add('cherry'); treeSet.add('apple'); treeSet.add('banana');
System.out.println(treeSet);  // [apple, banana, cherry] - sorted

// TreeSet additional navigation methods
TreeSet<Integer> numbers = new TreeSet<>(Arrays.asList(10, 20, 30, 40));
System.out.println(numbers.first());       // 10
System.out.println(numbers.last());          // 40
System.out.println(numbers.higher(20));      // 30 - smallest element > 20
System.out.println(numbers.lower(20));       // 10 - largest element < 20
Classकिस पर backedOrder
HashSetHashMapGuaranteed नहीं
LinkedHashSetLinkedHashMapInsertion order
TreeSetTreeMapSorted order
Set<String> hashSet = new HashSet<>();
hashSet.add('cherry'); hashSet.add('apple'); hashSet.add('banana');

Set<String> linkedSet = new LinkedHashSet<>();
linkedSet.add('cherry'); linkedSet.add('apple'); linkedSet.add('banana');
System.out.println(linkedSet);  // insertion order

Set<String> treeSet = new TreeSet<>();
treeSet.add('cherry'); treeSet.add('apple'); treeSet.add('banana');
System.out.println(treeSet);  // sorted

TreeSet<Integer> numbers = new TreeSet<>(Arrays.asList(10, 20, 30, 40));
System.out.println(numbers.first());   // 10
System.out.println(numbers.higher(20)); // 30

Was this answer clear?