Open In App

ListSet in Scala

Improve
Improve
Like Article
Like
Save
Share
Report

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




// 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 listSet1: ListSet[String] = ListSet("GeeksForGeeks",
                                            "Article", "Scala")
        println(s"Elements of listSet1 = $listSet1")
    }
}


Output:

Initializing an immutable ListSet 
Elements of listSet1 = ListSet(Scala, Article, GeeksForGeeks)

Check specific elements in ListSet : 

Scala




// 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 listSet1: ListSet[String] = ListSet("GeeksForGeeks",
                                            "Article", "Scala")
        println(s"Elements of listSet1 = $listSet1")
         
        println("Check elements of immutable ListSet")
         
        // Checking element in a ListSet
        println(s"GeeksForGeeks = ${listSet1("GeeksForGeeks")}")
        println(s"Student = ${listSet1("Student")}")
        println(s"Scala = ${listSet1("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




// 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 listSet1: ListSet[String] = ListSet("GeeksForGeeks",
                                            "Article", "Scala")
        println(s"Elements of listSet1 = $listSet1")
         
        // Adding element in ListSet
        println("Add element of immutable ListSet ")
        val listSet2: ListSet[String] = listSet1 + "Java"
        println(s"Adding element java to ListSet $listSet2")
    }
}


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




// 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 listSet1: ListSet[String] = ListSet("GeeksForGeeks",
                                               "Article", "Scala")
        println(s"Elements of listSet1 = $listSet1")
         
        // Adding two ListSet
        val listSet2: ListSet[String] = listSet1 ++ ListSet("Java",
                                                            "Csharp")
        println(s"After adding two lists $listSet2")
         
 
    }
}


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




// 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 listSet1: ListSet[String] = ListSet("GeeksForGeeks",
                                                "Article", "Scala")
        println(s"Elements of listSet1 = $listSet1")
         
        println("Remove element from the ListSet ")
        val listSet2: ListSet[String] = listSet1 - ("Article")
        println(s"After removing element from listset = $listSet2")
         
 
    }
}


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




// 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:

  1. ListSet is immutable, meaning that its contents cannot be modified after creation.
  2. ListSet provides efficient constant time operations for adding and removing elements, as well as set operations such as union, intersection, and difference.
  3. ListSet preserves the order of elements in the list, making it useful for scenarios where the order of elements is important.
  4. 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:

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)
  }
}


Output

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.



Last Updated : 09 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads