Difference between List and Set in Java

๐Ÿ’ก Concept: List vs Set

List and Set are two key interfaces in Java's Collection Framework with different characteristics: Lists allow duplicates and preserve insertion order, while Sets do not allow duplicates and may not preserve order.

๐Ÿ“˜ Quick Intro

Use List when order and duplicates matter. Use Set when uniqueness is required. Examples: ArrayList vs HashSet.

๐Ÿง  Analogy

A List is like a queue of people โ€” order matters and people can appear more than once. A Set is like a guest list โ€” each name is unique, and order is not always guaranteed.

๐Ÿ”ง Technical Explanation

  • List allows duplicates; Set does not.
  • List maintains insertion order; Set does not (except LinkedHashSet).
  • List supports positional access; Set does not.
  • Set is generally faster for search due to hashed structure.
  • Common implementations: ArrayList, LinkedList, HashSet, TreeSet.

๐ŸŽฏ Use Cases

  • โœ… Use List when duplicates and order are important (e.g., tasks, playlists).
  • โœ… Use Set to maintain a unique collection (e.g., unique usernames).
  • โœ… Use TreeSet for sorted data without duplicates.

๐Ÿ’ป Example: List vs Set


import java.util.*;

public class ListSetExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A"); list.add("B"); list.add("A");
        System.out.println("List: " + list); // Allows duplicates

        Set<String> set = new HashSet<>();
        set.add("A"); set.add("B"); set.add("A");
        System.out.println("Set: " + set); // Removes duplicates
    }
}

โ“ Interview Q&A

Q1: Can List have duplicates?
A: Yes.

Q2: Does Set allow duplicates?
A: No.

Q3: Which maintains insertion order?
A: List and LinkedHashSet.

Q4: Is positional access supported in Set?
A: No.

Q5: Which is faster for contains()?
A: Set (especially HashSet).

Q6: Can we sort a Set?
A: Yes, with TreeSet.

Q7: Which is better for storing tasks in order?
A: List.

Q8: Which should be used for unique IDs?
A: Set.

Q9: Does List guarantee uniqueness?
A: No.

Q10: Can we iterate both using for-each loop?
A: Yes.

๐Ÿ“ MCQs

Q1. Which allows duplicates?

  • Set
  • List
  • TreeSet
  • LinkedHashSet

Q2. Which does not maintain order?

  • ArrayList
  • LinkedList
  • HashSet
  • LinkedHashSet

Q3. Which supports positional access?

  • Set
  • List
  • HashSet
  • TreeSet

Q4. Which ensures unique values?

  • List
  • Set
  • ArrayList
  • Vector

Q5. Which is typically faster for lookup?

  • ArrayList
  • HashSet
  • TreeMap
  • Stack

Q6. Which class maintains sorted order?

  • List
  • HashSet
  • TreeSet
  • ArrayList

Q7. Which is ideal for ordered duplicates?

  • Set
  • TreeSet
  • List
  • Map

Q8. Does HashSet allow null?

  • Yes
  • No
  • Only once
  • Never

Q9. Which maintains insertion order?

  • HashSet
  • LinkedHashSet
  • TreeSet
  • HashMap

Q10. Which does not allow duplicates?

  • List
  • ArrayList
  • Set
  • Vector

๐Ÿ’ก Bonus Insight

While both List and Set are collections, choosing between them impacts performance, memory usage, and behavior significantly depending on your application needs.

๐Ÿ“„ PDF Download

Need a handy summary for your notes? Download this topic as a PDF!

๐Ÿ” Navigation

Learn More About Java โ˜•

What is Java and its key features ๐Ÿ‘‰ Explained
Explain the Java Virtual Machine (JVM) ๐Ÿ‘‰ Explained
Difference between JDK, JRE, and JVM ๐Ÿ‘‰ Explained
What are Javaโ€™s main data types ๐Ÿ‘‰ Explained
Explain the concept of Object-Oriented Programming in Java ๐Ÿ‘‰ Explained
What is the difference between a class and an object ๐Ÿ‘‰ Explained
Explain encapsulation with an example ๐Ÿ‘‰ Explained
What is inheritance in Java and its types ๐Ÿ‘‰ Explained
Define polymorphism in Java with examples ๐Ÿ‘‰ Explained
What is abstraction in Java ๐Ÿ‘‰ Explained
Difference between abstract class and interface in Java ๐Ÿ‘‰ Explained
Explain method overloading and method overriding in Java ๐Ÿ‘‰ Explained
What are constructors in Java ๐Ÿ‘‰ Explained
What is the use of the static keyword in Java ๐Ÿ‘‰ Explained
Explain the difference between final, finally, and finalize in Java ๐Ÿ‘‰ Explained
Share:

Tags:


Feedback Modal Popup