Scala Trait Traversable | Set-1
Last Updated :
12 Apr, 2019
Introduction:
A root trait of the entire class of the Scala collections is
Trait Traversable. It is available at the uppermost position of the collection hierarchy. It has uniquely one abstract operation, which is
foreach. Here each of the operations are assured to be executed in a single-threaded approach.
Syntax:
def foreach[U](f: Elem => U)
Here, the operation
f is concerned with all the elements of the collection and
Elem => U is the type of operation, where "Elem" is the type of elements in the Scala's collection and "U" is an inconsistent result type.
Some Important points:
- Traversable is accomplished by the Scala's Collection classes.
- It is obligatory for Traversable to define foreach method only, as Traversable can inherit all the other methods.
- The foreach method could traverse all the elements of the Scala's collection class.
- There are numerous concrete methods which are defined by Traversables.
- List, Array, Map, Set, and many more are the subclass of Traversables.
Operations performed by the Class Traversable are as follows:
- Abstract Method:
The only abstract method here is foreach, which can traverse over all the elements of the Collection.
Example :
Scala
//Scala program of abstract method
//Creating object
object CS
{
//Main method
def main(args: Array[String])
{
//Creating an Array of elements
val x = Array("GEEKS", "FOR", "GEEKS")
//Calling foreach method
x.foreach { E =>
val y = E.toLowerCase
//Display strings
println(y)
}
}
}
Here, all the elements of the Array stated above are traversed by foreach method and then they are converted from uppercase to lowercase.
Example:
Scala
// Scala program of abstract method
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
//Creating list of numbers
val l = List(2, 6, 8, 7, 10, 11, 13)
//Calling foreach and displaying
//numbers of list after
//multiplication each of them
l.foreach(n => println(n * 6))
}
}
Output:
12
36
48
42
60
66
78
Here, foreach method traverses all the numbers of the list and multiplies each of them.
- Addition operation:
Here, Addition operation i.e, ++ adds two Traversables together or adds each of the elements of an iterator to a Traversable.
Example:
Scala
// Scala program of addition operation
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
// Creating set of numbers
val x = Set(7, 8, 9, 10)
// Creating list of numbers
val y = List(1, 5, 8, 18)
//performing addition operation
val s1 = x ++ y
val s2 = y ++ x
//Displaying set
println(s1)
//Displaying list
println(s2)
}
}
Output:
Set(5, 10, 1, 9, 7, 18, 8)
List(1, 5, 8, 18, 7, 8, 9, 10)
Here, when a Set is added to a List then a Set is generated and when a List is added to a Set then a List is generated.
- Map operations:
The three Map operations are map, flatMap, and collect.
These Map operations create a new collection by assigning a few function to the elements of Scala collection.
Example :
Scala
// Scala program of Map operations
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
// Creating Set of numbers
val x = Set(8, 9, 5, 10)
// Applying map operation
val y = x.map(_ * 9)
// Displaying Set
println(y)
}
}
Output:
Set(72, 81, 45, 90)
Here, the Map operation (i.e, map) will assign the stated function on each elements of a Traversable and will return a new collection as output.
Example :
Scala
// Scala program of Map operations
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
// Creating a List of lists
val q = List(List(7), List(8, 9, 10), List(11, 12, 13))
// Applying map operation
val r = q.flatMap(_.map(_ + 3))
// Displaying List
println(r)
}
}
Output:
List(10, 11, 12, 13, 14, 15, 16)
Here, the flatMap will assign the stated function on each elements within the elements and then will Concatenate the output.
Example :
Scala
// Scala program of Map operations
// Creating object
object GFG
{
// Main method
def main(args: Array[String])
{
// Creating List of numbers
val x = List(9, 3, 5, 11, 15, 4)
// Applying map operation
val y = x.collect
{
// Partial function
case z : Int if (z % 3 == 0) => z + 2
}
//Displaying list
println(y)
}
}
Here, collect will assign a partial function to each elements of Traversable and will give a non-identical collection as output.
Similar Reads
Scala Trait Traversable | Set-2 prerequisite- Scala Trait Traversable | Set-1In the previous Set we have seen some of the operations performed by the Class Taversable. Now, in this Set we will perceive some more operations. These operations are as follows: Conversion operations: The Conversion operations are toList, toSeq, toArray
8 min read
Program to convert Java Set to a Traversable in Scala A java Set can be converted to a Traversable collection in Scala by utilizing toTraversable method of Java in Scala. Here, we need to import Scalaâs JavaConversions object in order to make this conversions work. Now, lets see some examples and then discuss how it works in details. Example:1# Scala /
2 min read
Set in Scala | Set-1 A set is a collection which only contains unique items. The uniqueness of a set are defined by the == method of the type that set holds. If you try to add a duplicate item in the set, then set quietly discard your request. Syntax: // Immutable set val variable_name: Set[type] = Set(item1, item2, ite
3 min read
Program to convert Java Set of strings to a Traversable in Scala A java Set of strings can be converted to a Traversable collection in Scala by utilizing toTraversable method of Java in Scala. Here, we need to import Scalaâs JavaConversions object in order to make this conversions work. Now, lets see some examples and then discuss how it works in details. Example
2 min read
Program to convert Java Set of bytes to a Traversable in Scala A java Set of bytes can be converted to a Traversable collection in Scala by utilizing toTraversable method of Java in Scala. Here, we need to import Scalaâs JavaConversions object in order to make this conversions work. Now, lets see some examples and then discuss how it works in details. Example:1
1 min read