Session 13 |
Set
A Set
is a collection that cannot contain duplicate elements. There are three main implementations of the Set
interface:
HashSet
, which stores its elements in a hash table, is the best-performing implementation; however it makes no guarantees concerning the order of iteration;TreeSet
, which stores its elements in a red-black tree, orders its elements based on their values; it is substantially slower than HashSet;LinkedHashSet
, which is implemented as a hash table with a linked list running through it, orders its elements based on the order in which they were inserted into the set (insertion-order).
The main methods of any set are:
add
- adds an element to the set if it is not already present;contains
- checks if the element is present in the set.
Set<String> myMails = new HashSet<>(); myMails.add("example@example.com"); myMails.add("java-is-awesome@example.com"); myMails.add("example@example.com"); // the address won't be added; it is present in the set for (String address : myMails) { System.out.println(address); } List<String> names = Arrays.asList("Anna", "John", "Aivar", "Marina", "Aivar"); // get a set with unique elements Set<String> uniqueNames = new HashSet<>(names); // convert the set into a list names = new ArrayList<>(uniqueNames);
Usually sets are used to get a collection of unique elements or to find the intersection, the union ja the difference (theory of sets ).
Session 13 |