In this tutorial, we will explore the LinkedHashSet
class in Java, which is a specialized implementation of the Set
interface. Unlike the standard HashSet
, LinkedHashSet
maintains the insertion order of its elements. This tutorial will demonstrate how to use LinkedHashSet
with examples, covering all important operations and different ways for iteration using Java 8 features.
Table of Contents
- Introduction
- Prerequisites
- Step-by-Step Guide
- Creating a LinkedHashSet
- Adding and Retrieving Elements
- Iterating Over the Set
- Removing Elements
- Complete Code Example
- Conclusion
Introduction
LinkedHashSet
is a part of Java's java.util
package and extends HashSet
. It maintains a doubly-linked list running through all of its entries, ensuring the order of the elements is preserved based on their insertion order. This makes LinkedHashSet
useful in scenarios where the order of elements is important.
Prerequisites
Before we start, ensure you have the following:
- Java Development Kit (JDK) installed (latest version preferred)
- An Integrated Development Environment (IDE) such as IntelliJ IDEA or Eclipse
Step-by-Step Guide
Step 1: Creating a LinkedHashSet
First, let's create a LinkedHashSet
and add some elements to it.
import java.util.LinkedHashSet;
import java.util.Set;
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Print the set
System.out.println("LinkedHashSet: " + linkedSet);
}
}
Output:
LinkedHashSet: [Ravi, Sita, Arjun, Lakshmi]
Step 2: Adding and Retrieving Elements
Let's add some elements to the LinkedHashSet
and check if certain elements are present.
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Check if elements are present
System.out.println("Contains Ravi: " + linkedSet.contains("Ravi"));
System.out.println("Contains Gopal: " + linkedSet.contains("Gopal"));
}
}
Output:
Contains Ravi: true
Contains Gopal: false
Step 3: Iterating Over the Set
We can iterate over the LinkedHashSet
using a for-each loop, iterator, and Java 8 features like forEach and streams.
Using For-Each Loop
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Iterate over the set using for-each loop
System.out.println("Iterating over LinkedHashSet using for-each loop:");
for (String element : linkedSet) {
System.out.println(element);
}
}
}
Output:
Iterating over LinkedHashSet using for-each loop:
Ravi
Sita
Arjun
Lakshmi
Using Iterator
import java.util.Iterator;
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Iterate over the set using iterator
System.out.println("Iterating over LinkedHashSet using iterator:");
Iterator<String> iterator = linkedSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
Output:
Iterating over LinkedHashSet using iterator:
Ravi
Sita
Arjun
Lakshmi
Using forEach and Lambda Expression (Java 8)
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Iterate over the set using forEach and lambda
System.out.println("Iterating over LinkedHashSet using forEach and lambda:");
linkedSet.forEach(element -> System.out.println(element));
}
}
Output:
Iterating over LinkedHashSet using forEach and lambda:
Ravi
Sita
Arjun
Lakshmi
Using Streams (Java 8)
import java.util.stream.Collectors;
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Iterate over the set using streams
System.out.println("Iterating over LinkedHashSet using streams:");
linkedSet.stream().forEach(System.out::println);
// Convert LinkedHashSet to a List using streams
System.out.println("LinkedHashSet to List:");
linkedSet.stream().collect(Collectors.toList()).forEach(System.out::println);
}
}
Output:
Iterating over LinkedHashSet using streams:
Ravi
Sita
Arjun
Lakshmi
LinkedHashSet to List:
Ravi
Sita
Arjun
Lakshmi
Step 4: Removing Elements
Let's remove elements from the LinkedHashSet
and demonstrate the use of remove
method.
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Remove an element
linkedSet.remove("Arjun");
// Print the set after removal
System.out.println("LinkedHashSet after removal: " + linkedSet);
}
}
Output:
LinkedHashSet after removal: [Ravi, Sita, Lakshmi]
Complete Code Example
Here's the complete code example demonstrating various operations with LinkedHashSet
:
import java.util.LinkedHashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.stream.Collectors;
public class LinkedHashSetExample {
public static void main(String[] args) {
// Create a LinkedHashSet
Set<String> linkedSet = new LinkedHashSet<>();
// Add elements to the set
linkedSet.add("Ravi");
linkedSet.add("Sita");
linkedSet.add("Arjun");
linkedSet.add("Lakshmi");
// Retrieve and check if elements are present
System.out.println("Contains Ravi: " + linkedSet.contains("Ravi"));
System.out.println("Contains Gopal: " + linkedSet.contains("Gopal"));
// Iterate over the set using for-each loop
System.out.println("Iterating over LinkedHashSet using for-each loop:");
for (String element : linkedSet) {
System.out.println(element);
}
// Iterate over the set using iterator
System.out.println("Iterating over LinkedHashSet using iterator:");
Iterator<String> iterator = linkedSet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
// Iterate over the set using forEach and lambda
System.out.println("Iterating over LinkedHashSet using forEach and lambda:");
linkedSet.forEach(element -> System.out.println(element));
// Iterate over the set using streams
System.out.println("Iterating over LinkedHashSet using streams:");
linkedSet.stream().forEach(System.out::println);
// Convert LinkedHashSet to a List using streams
System.out.println("LinkedHashSet to List:");
linkedSet.stream().collect(Collectors.toList()).forEach(System.out::println);
// Remove an element
linkedSet.remove("Arjun");
System.out.println("LinkedHashSet after removal: " + linkedSet);
}
}
Output:
Contains Ravi: true
Contains Gopal: false
Iterating over LinkedHashSet using for-each loop:
Ravi
Sita
Arjun
Lakshmi
Iterating over LinkedHashSet using iterator:
Ravi
Sita
Arjun
Lakshmi
Iterating over LinkedHashSet using forEach and lambda:
Ravi
Sita
Arjun
Lakshmi
Iterating over LinkedHashSet using streams:
Ravi
Sita
Arjun
Lakshmi
LinkedHashSet to List:
Ravi
Sita
Arjun
Lakshmi
LinkedHashSet after removal: [Ravi, Sita, Lakshmi]
Conclusion
In this tutorial, we demonstrated how to use the LinkedHashSet
class in Java. We covered creating a LinkedHashSet
, adding and retrieving elements, iterating over the set using various methods, and removing elements. By following this guide, developers can effectively use LinkedHashSet
in scenarios where the order of elements is important.
Comments
Post a Comment
Leave Comment