Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between Set and List?

Tags:

java

list

set

What is the fundamental difference between the Set<E> and List<E> interfaces?

like image 570
Johanna Avatar asked Jun 23 '09 20:06

Johanna


People also ask

What is difference between Set and list in python?

Lists and tuples are standard Python data types that store values in a sequence. Sets are another standard Python data type that also store values. The major difference is that sets, unlike lists or tuples, cannot have multiple occurrences of the same element and store unordered values.

Which is better list or Set?

The usage is purely depends on the requirement: If the requirement is to have only unique values then Set is your best bet as any implementation of Set maintains unique values only. If there is a need to maintain the insertion order irrespective of the duplicity then List is a best option.

What is different between ArrayList and Set?

ArrayList maintains the insertion order i.e order of the object in which they are inserted. HashSet is an unordered collection and doesn't maintain any order. ArrayList allows duplicate values in its collection. On other hand duplicate elements are not allowed in Hashset.


4 Answers

List is an ordered sequence of elements whereas Set is a distinct list of elements which is unordered (thank you, Quinn Taylor).

List<E>:

An ordered collection (also known as a sequence). The user of this interface has precise control over where in the list each element is inserted. The user can access elements by their integer index (position in the list), and search for elements in the list.

Set<E>:

A collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1.equals(e2), and at most one null element. As implied by its name, this interface models the mathematical set abstraction.

like image 105
Andrew Hare Avatar answered Oct 16 '22 17:10

Andrew Hare


List Set
Duplicates Yes No
Order Ordered Depends on implementation
Position Access Yes No
like image 26
Sergii Shevchyk Avatar answered Oct 16 '22 18:10

Sergii Shevchyk


Ordered lists of element (unique or not)
Conform to Java's interface named List
Can be accessed by index

Implemented using

  • LinkedList
  • ArrayList

Lists of unique elements:
Conform to Java's interface named Set
Can not be accessed by index

Implemented using

  • HashSet (unordered)
  • LinkedHashSet (ordered)
  • TreeSet (sorted by natural order or by provided comparator)

Both interfaces Set and List conform to Java's interface named Collection

like image 83
ivan_ivanovich_ivanoff Avatar answered Oct 16 '22 18:10

ivan_ivanovich_ivanoff


A Set cannot contain duplicate elements while a List can. A List (in Java) also implies order.

like image 34
Peter Avatar answered Oct 16 '22 17:10

Peter