A set is a collection which only contains unique items which are not repeatable and a list is a collection which contains immutable data. In scala, ListSet class implements immutable sets using a list-based data structure. Elements are stored in reversed insertion order, That means the newest element is at the head of the list. It maintains insertion order. Listset is used only for a small number of elements. We can create empty ListSet either by calling the constructor or by applying the function ListSet.empty. It’s iterate and traversal methods visit elements in the same order in which they were first inserted.
Syntax:
var ListSetName = ListSet(element1, element2, element3, ....)
Operations with ListSet
Initialize a ListSet : Below is the example to create or initialize ListSet.
// Scala program to Initialize a ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
println("Initializing an immutable ListSet ")
// Creating ListSet
val listSet 1 : ListSet[String] = ListSet("GeeksForGeeks",
"Article", "Scala")
println(s"Elements of listSet 1 = $listSet 1 ")
}
} |
Output:
Initializing an immutable ListSet Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks)
Check specific elements in ListSet :
// Scala program to Check specific elements in ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
println("Initializing an immutable ListSet ")
// Creating ListSet
val listSet 1 : ListSet[String] = ListSet("GeeksForGeeks",
"Article", "Scala")
println(s"Elements of listSet 1 = $listSet 1 ")
println("Check elements of immutable ListSet")
// Checking element in a ListSet
println(s"GeeksForGeeks = ${listSet 1 ("GeeksForGeeks")}")
println(s"Student = ${listSet 1 ("Student")}")
println(s"Scala = ${listSet 1 ("Scala")}")
}
} |
Output:
Initializing an immutable ListSet Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks) Check elements of immutable ListSet GeeksForGeeks = true Student = false Scala = true
Adding an elements in ListSet : We can add an element in ListSet by using + operator. below is the example of adding an element in ListSet.
// Scala program to Add an element in a ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
println("Initializing an immutable ListSet ")
// Creating ListSet
val listSet 1 : ListSet[String] = ListSet("GeeksForGeeks",
"Article", "Scala")
println(s"Elements of listSet 1 = $listSet 1 ")
// Adding element in ListSet
println("Add element of immutable ListSet ")
val listSet 2 : ListSet[String] = listSet 1 + "Java"
println(s"Adding element java to ListSet $listSet 2 ")
}
} |
Output:
Initializing an immutable ListSet Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks) Add element of immutable ListSet Adding element java to ListSet ListSet(Java, Scala, Article, GeeksForGeeks)
Adding two ListSet : We can add two ListSet by using ++ operator. below is the example of adding two ListSet.
// Scala program to Add two ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
println("Initializing an immutable ListSet ")
// Creating ListSet
val listSet 1 : ListSet[String] = ListSet("GeeksForGeeks",
"Article", "Scala")
println(s"Elements of listSet 1 = $listSet 1 ")
// Adding two ListSet
val listSet 2 : ListSet[String] = listSet 1 ++ ListSet("Java",
"Csharp")
println(s"After adding two lists $listSet 2 ")
}
} |
Output:
Initializing an immutable ListSet Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks) After adding two lists ListSet(Java, Csharp, Scala, Article, GeeksForGeeks)
Remove element from the ListSet : We can remove an element in ListSet by using – operator. below is the example of removing an element in ListSet.
// Scala program to Remove element from the ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
println("Initializing an immutable ListSet ")
// Creating ListSet
val listSet 1 : ListSet[String] = ListSet("GeeksForGeeks",
"Article", "Scala")
println(s"Elements of listSet 1 = $listSet 1 ")
println("Remove element from the ListSet ")
val listSet 2 : ListSet[String] = listSet 1 - ("Article")
println(s"After removing element from listset = $listSet 2 ")
}
} |
Output:
Initializing an immutable ListSet Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks) Remove element from the ListSet After removing element from listset = ListSet(Scala, GeeksForGeeks)
Initialize an empty ListSet :
// Scala program to print empty ListSet import scala.collection.immutable. _
// Creating object object GFG
{ // Main method
def main(args : Array[String])
{
// Creating an empty ListSet
println("Initialize an empty ListSet")
val emptyListSet : ListSet[String] = ListSet.empty[String]
println(s"String type empty ListSet = $emptyListSet")
}
} |
Output:
Initialize an empty ListSet String type empty ListSet = ListSet()
Note: We can create empty ListSet either by applying the function ListSet.empty or by calling the constructor .
ListSet in Scala is an immutable collection that represents a set of elements as an ordered list. ListSet provides constant time operations for adding and removing elements, and it preserves the order of elements in the list.
Here are some key features and usage examples of ListSet:
- ListSet is immutable, meaning that its contents cannot be modified after creation.
- ListSet provides efficient constant time operations for adding and removing elements, as well as set operations such as union, intersection, and difference.
- ListSet preserves the order of elements in the list, making it useful for scenarios where the order of elements is important.
- ListSet can be used in a variety of scenarios, including removing duplicates from a list, checking for membership of elements in a set, and performing set operations on two or more sets.
Here’s an example code snippet that demonstrates the usage of ListSet in Scala:
import scala.collection.immutable.ListSet
object ListSetExample {
def main(args : Array[String]) : Unit = {
val listSet = ListSet( 1 , 2 , 3 , 3 , 4 , 5 , 5 )
// Add an element to the set
val updatedSet = listSet + 6
// Remove an element from the set
val removedSet = updatedSet - 4
// Check if an element is in the set
val containsElement = removedSet.contains( 2 )
// Get the union of two sets
val otherSet = ListSet( 3 , 4 , 5 , 6 , 7 )
val unionSet = removedSet.union(otherSet)
// Print the sets
println( "Original set: " + listSet)
println( "Updated set: " + updatedSet)
println( "Removed set: " + removedSet)
println( "Contains element: " + containsElement)
println( "Union set: " + unionSet)
}
} |
Original set: ListSet(5, 4, 3, 2, 1) Updated set: ListSet(6, 5, 4, 3, 2, 1) Removed set: ListSet(6, 5, 3, 2, 1) Contains element: true Union set: ListSet(4, 7, 6, 5, 3, 2, 1)
In this example, we create a new ListSet and add, remove, and check for membership of elements in it. We also get the union of the ListSet with another ListSet. As we can see from the output, the ListSet preserves the order of elements in the list, and the set operations return new sets without modifying the original sets.