Introduction
When working with ArrayLists in Java, there may be times when you need to extract unique values from the list. This can be quite useful when you want to remove duplicates and ensure that each element in the ArrayList is only represented once. In this tutorial, we will explore different ways to extract unique values from an ArrayList in Java.
Approach 1: Using HashSet
One of the simplest and most efficient ways to extract unique values from an ArrayList in Java is by using a HashSet. HashSet is a collection that does not allow duplicates. Here's how you can leverage HashSet in Java to extract unique values from your ArrayList:
Step 1: Convert ArrayList to HashSet
The first step is to convert your ArrayList to a HashSet. This can be done quite easily by simply passing your ArrayList to the HashSet constructor.
ArrayList list = new ArrayList();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
HashSet set = new HashSet(list);
In the above example, we have an ArrayList that contains "apple", "banana", "apple", and "orange". We then convert this ArrayList to a HashSet by simply passing the ArrayList to the HashSet constructor. Note that the resulting set will only contain "apple", "banana", and "orange", as "apple" was already included in the set.
Step 2: Convert HashSet back to ArrayList
Once you have converted your ArrayList to a HashSet, you can then convert the set back to an ArrayList to get the unique values. This can be done by simply passing the set to the ArrayList constructor.
ArrayList uniqueList = new ArrayList(set);
In the above example, we convert the HashSet "set" back to an ArrayList "uniqueList", which will contain the unique values "apple", "banana", and "orange".
Approach 2: Using Streams
Another way to extract unique values from an ArrayList in Java is by using streams. This method involves creating a stream from your ArrayList, filtering out duplicates, and then converting the stream back to an ArrayList. Here's how you can use streams in Java to extract unique values from your ArrayList:
Step 1: Create a Stream
The first step is to create a stream from your ArrayList. This can be done using the "stream()" method of the ArrayList class.
ArrayList list = new ArrayList();
list.add("apple");
list.add("banana");
list.add("apple");
list.add("orange");
Stream stream = list.stream();
In the above example, we create a stream "stream" from the ArrayList "list".
Step 2: Filter out Duplicates
Next, we need to filter out duplicates from the stream. This can be done using the "distinct()" method of the Stream class.
Stream uniqueStream = stream.distinct();
In the above example, we create a new stream "uniqueStream" that only contains the unique elements from the original stream.
Step 3: Convert Stream back to ArrayList
Finally, we can convert the stream back to an ArrayList using the "collect()" method of the Stream class.
ArrayList uniqueList = uniqueStream.collect(Collectors.toList());
In the above example, we convert the stream "uniqueStream" back to an ArrayList "uniqueList", which will contain the unique values "apple", "banana", and "orange".
Conclusion
In summary, there are several ways to extract unique values from an ArrayList in Java. One of the simplest and most efficient ways is by using a HashSet, while another method involves using streams to filter out duplicates. By using one of these approaches, you can ensure that each element in your ArrayList is only represented once.