Difference Between List and Set (With Table)

The List and the Set interface both are different facilities of Java that help the users to program according to their needs. These two interfaces have different functions and can often appear confusing to people. They can be differentiated bases on their traits and usages.

List vs Set

The main difference between list and set is that the List in Java is a kind of interface that allows duplicate elements. In contrast to that, the interface, Set, does not allow any duplicate element in its program. Besides that, even though both allow null values, Set only permits to put one thanks value. In comparison, the List authorizes the user to put any number of thanks value.

The List is an orderly element that puts the elements in insertion order. It can contain more than one null value, and it can be as many as the user needs. So when the user needs to keep the elements in order, they should opt for the List interface.

Set is an interface that keeps the elements in an unorderly manner. This interface has some limitations, such as it does not allow the user to put more than one null value, and it also rejects the input of duplicity in the given elements.

Comparison Table Between List and Set

Parameters of ComparisonListSet
ElementsThe List allows users to add the same elements.The Set does not allow a user to add the same elements.
Insertion OrderThe List does not allow the insertion order of the element.Insertion order of elements is not retained by the Set.
Null valueList permits the user to add any number of null values.Set does not permit the user to add more than one null value.
UsageThe List is used when a user wants to access the elements often by making use of the index.The Set is used when a user aims to design a collection of different elements.
ImplementationsList implementations are ArrayList, LinkedList, etc.Set implementations are LinkedHashSet, HashSet, and TreeSet, etc.

What is List?

List in Java is the facility that gives the control to maintain the elements in an ordered way. It is a method-based program that gives permission to insert, update, and delete different elements. It is able to contain duplicate elements as well. Null numbers of elements can be stored in the list.

When attaining the insertion order is the aim of the user without regarding the duplicity, then the user should definitely choose the List interface. The implemented classes of List interface include classes like Vector, ArrayList, Stack, and LinkedList. The ArrayList and LinkedList are known to be widely used in Java programming, whereas the Vector class is kind of disapproved since the commencement of Java 5.

By learning all the List programs, one can use the basic program works. Various elements give rise to various layouts. List application offers solutions with different types of concepts such as positional access, iteration, etc. It is also open to changes, changes of position, deletion, and even placing new elements are allowed in this as well.

What is Set?

The interface Set is present in the package of java.util. This collection interface is an unordered collection of elements. This interface does not allow the storage of duplicate values. This interface mainly implements various mathematical sets.

If the user is needed to have only unique values and no duplicate values, then Set is the interface to be chosen. It is not programmed to contain more than one null value. Set is only able to maintain unique values. Interfaces named SortedSet and NavigableSet are able to extend the set implementation.

This interface is not just used for the collection but also to create mathematical sets, and it allows one thanks value at most. Unique elements are maintained with the use of the Set collection.

Set has various implementations, such as HashSet, which is the best among all other implementations, and as a result, it is widely used. This embodies the no duplication and unordered characteristic of the Set. LinkedHashSet stores the unique elements in order. And TreeSet helps to order the present elements based on their values.

Main Differences Between List and Set

  1. The List in Java allows users to add the same elements, but the Set does not allow users to add the same elements.
  2. Any number of null values are allowed to be added in List while Set does not give permission to put in more than one null value.
  3. The List is subjected to be used when a user wants to access the elements, often by making use of the index, and on the other hand, the Set is used when a user aims to design a collection of different elements.
  4. Duplicate elements are allowed in the List, but Set does not permit duplicity in used elements.
  5. The List follows an orderly sequence but the Set, on the contrary, is an unordered sequence.
  6. The list has only one legacy class which is named Vector, whereas the Set does not have any kind of legacy class.


In the programming world, javascript is inevitable, and its different interfaces help to achieve the desired design. All the interfaces have their unique uses in order to deliver the wished design to the users. One can not say which interface is better between the List and Set as they are not opponents of each other. They can not be chosen as the better between the two as they have different functions and are used to achieve different purposes. The list is used to have the elements in an ordered manner, while the Set is destined to create an unordered mathematical set.


  1. https://dl.acm.org/doi/abs/10.1145/2884781.2884869
  2. https://academic.oup.com/bioinformatics/article-abstract/23/23/3251/289118

About the Editorial Staff

Editorial Staff at Ask Any Difference is a team of experts in the field of "Difference Between" topics and led by Sandeep Bhandari, Piyush Yadav and Chara Yadav. Trusted by over 1.5 million readers worldwide
PinterestLinkedIn, Facebook

2D vs 3D x
2D vs 3D