WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

Java Collections · Advanced · question 57 of 100

What is the difference between a List and a Set in terms of usage and performance?

📕 Buy this interview preparation book: 100 Java Collections questions & answers — PDF + EPUB for $5

In Java Collections, List and Set are two different interfaces that serve different purposes and have different characteristics in terms of usage and performance.

A List is an ordered collection of elements that allows duplicate elements, and provides methods to access, add, remove, and modify elements based on their position in the list. Examples of List implementations include ArrayList, LinkedList, and Vector.

On the other hand, a Set is a collection of unique elements that does not allow duplicate elements, and provides methods to add, remove, and check for the existence of elements. Examples of Set implementations include HashSet, LinkedHashSet, and TreeSet.

In terms of usage, Lists are typically used when the order of elements is important and when duplicates need to be stored. For example, if you want to maintain a list of items in a specific order, a List would be the appropriate choice. Set, on the other hand, is used when uniqueness of elements is important, and the order of elements does not matter.

In terms of performance, adding, removing, and modifying elements in a List can be faster than in a Set because Lists are generally implemented as arrays, while Sets are generally implemented as hash tables or trees. However, checking for the existence of an element in a Set is generally faster than in a List because Sets use hashing or trees to perform fast lookups.

Here’s an example code that demonstrates the difference between a List and a Set:

import java.util.*;

public class ListVsSet {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        list.add("apple"); // duplicate element

        Set<String> set = new HashSet<>();
        set.add("apple");
        set.add("banana");
        set.add("cherry");
        set.add("apple"); // duplicate element

        System.out.println("List: " + list);
        System.out.println("Set: " + set);
    }
}

Output:

List: [apple, banana, cherry, apple]
Set: [banana, cherry, apple]

In the above example, we create a List and a Set of fruits, and add the same fruits to both collections. As expected, the List contains a duplicate element, while the Set only contains unique elements.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic Java Collections interview — then scores it.
📞 Practice Java Collections — free 15 min
📕 Buy this interview preparation book: 100 Java Collections questions & answers — PDF + EPUB for $5

All 100 Java Collections questions · All topics