List and Set both interface belongs to the Collection framework. Both interfaces extend the Collection interface. They both are used to store a collection of objects as a single unit.
Before jdk1.2, we used to use Arrays, Vectors, and Hashtable for grouping objects as a single unit.
| Sr. No. | Key | List | Set |
|---|---|---|---|
| 1 | Positional access | The list provides positional access of the elements in the collection. | Set doesn't provide positional access to the elements in the collection |
| 2 | Implementation | Implementation of List are ArrayList,LinkedList,Vector ,Stack | Implementation of a set interface is HashSet and LinkedHashSet |
| 3 | Duplicate | We can store the duplicate elements in the list. | We can’t store duplicate elements in Set |
| 4 | Ordering | List maintains insertion order of elements in the collection | Set doesn’t maintain any order |
| 5 | Null Element | The list can store multiple null elements | Set can store only one null element |
Example of List
import java.util.List;
import java.util.ArrayList;
import java.util.LinkedList;
public class ListExample {
public static void main(String[] args) {
List<String> al = new ArrayList<String>();
al.add("BMW");
al.add("Audi");
al.add("BMW");
System.out.println("List Elements: ");
System.out.print(al);
}
}Output
List Elements: [BMW, Audi, BMW]
Example of Set
import java.util.Set;
import java.util.HashSet;
import java.util.TreeSet;
public class SetExample {
public static void main(String args[]) {
int count[] = {2, 4, 3, 5};
Set<Integer> hset = new HashSet<Integer>();
try{
for(int i = 0; i<4; i++){
hset.add(count[i]);
}
System.out.println(hset);
}
catch(Exception e){
e.printStackTrace();
}
}
}Output
[2, 4, 3, 5]