A
list is a collection which contains immutable data. List represents linked list in Scala. The
Scala List class holds a sequenced, linear list of items.
Following are the point of difference between lists and array in Scala:
- Lists are immutable whereas arrays are mutable in Scala.
- Lists represents a linked list whereas arrays are flat.
Syntax:
val variable_name: List[type] = List(item1, item2, item3)
or
val variable_name = List(item1, item2, item3)
Some important points about list in Scala:
- In a Scala list, each element must be of the same type.
- The implementation of lists uses mutable state internally during construction.
- In Scala, list is defined under scala.collection.immutable package.
- A List has various methods to add, prepend, max, min, etc. to enhance the usage of list.
Example:
Scala
// Scala program to print immutable lists
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating and initializing immutable lists
val mylist1: List[String] = List("Geeks", "GFG",
"GeeksforGeeks", "Geek123")
val mylist2 = List("C", "C#", "Java", "Scala",
"PHP", "Ruby")
// Display the value of mylist1
println("List 1:")
println(mylist1)
// Display the value of mylist2 using for loop
println("\nList 2:")
for(mylist<-mylist2)
{
println(mylist)
}
}
}
Output:
List 1:
List(Geeks, GFG, GeeksforGeeks, Geek123)
List 2:
C
C#
Java
Scala
PHP
Ruby
In above example simply we are printing two lists.
Example:
Scala
// Scala program to illustrate the
// use of empty list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating an Empty List.
val emptylist: List[Nothing] = List()
println("The empty list is:")
println(emptylist)
}
}
Output:
The empty list is:
List()
Above example shows that the list is empty or not.
Example:
Scala
// Scala program to illustrate the
// use of two dimensional list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating a two-dimensional List.
val twodlist: List[List[Int]] =
List(
List(1, 0, 0),
List(0, 1, 0),
List(0, 0, 1)
)
println("The two dimensional list is:")
println(twodlist)
}
}
Output:
The two dimensional list is:
List(List(1, 0, 0), List(0, 1, 0), List(0, 0, 1))
Basic Operations on Lists
The following are the three basic operations which can be performed on list in scala:
- head: The first element of a list returned by head method.
Syntax:
list.head //returns head of the list
Example:
Scala
// Scala program of a list to
// perform head operation
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating a List.
val mylist = List("C", "C#", "Java", "Scala",
"PHP", "Ruby")
println("The head of the list is:")
println(mylist.head)
}
}
Output:
The head of the list is:
C
- tail: This method returns a list consisting of all elements except the first.
Syntax:
list.tail //returns a list consisting of all elements except the first
Example:
Scala
// Scala program to perform
// tail operation of a list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating a List.
val mylist = List("C", "C#", "Java", "Scala",
"PHP", "Ruby")
println("The tail of the list is:")
println(mylist.tail)
}
}
Output:
The tail of the list is:
List(C#, Java, Scala, PHP, Ruby)
- isEmpty: This method returns true if the list is empty otherwise false.
Syntax:
list.isEmpty //returns true if the list is empty otherwise false.
Example:
Scala
// Scala program to perform
// isEmpty operation of a list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Creating a List.
val mylist = List("C", "C#", "Java", "Scala",
"PHP", "Ruby")
println("List is empty or not:")
println(mylist.isEmpty)
}
}
Output:
List is empty or not:
false
How to create a uniform list in Scala
Uniform List can be created in Scala using List.fill() method. List.fill() method creates a list and fills it with zero or more copies of an element.
Syntax:
List.fill() //used to create uniform list in Scala
Example:
Scala
// Scala program to creating a uniform list
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
// Repeats Scala three times.
val programminglanguage = List.fill(3)("Scala")
println( "Programming Language : " + programminglanguage )
// Repeats 2, 10 times.
val number= List.fill(8)(4)
println("number : " + number)
}
}
Output:
Programming Language : List(Scala, Scala, Scala)
number : List(4, 4, 4, 4, 4, 4, 4, 4)
Reversing List Order in Scala
The list order can be reversed in Scala using List.reverse method. List.reverse method can be used to reverse all elements of the list.
Syntax:
list.reverse //used to reverse list in Scala
Example:
Scala
// Scala program of reversing a list order
import scala.collection.immutable._
// Creating object
object GFG
{
// Main method
def main(args:Array[String])
{
val mylist = List(1, 2, 3, 4, 5)
println("Original list:" + mylist)
// reversing a list
println("Reverse list:" + mylist.reverse)
}
}
Output:
Original list:List(1, 2, 3, 4, 5)
Reverse list:List(5, 4, 3, 2, 1)
Explore
Overview
Basics
Control Statements
OOP Concepts
Methods
Strings
Scala Packages
Scala Trait
Collections