Templates by BIGtheme NET

Overview of Collections

An Overview of the Collections API :
1) For instance, every kind of collection can be created by the same uniform syntax, writing the collection class name followed by its elements.

Traversable(1, 2, 3)
Iterable("x", "y", "z")
Map("x" -> 24, "y" -> 25, "z" -> 26)
Set(Color.red, Color.green, Color.blue)
SortedSet("hello", "world")
Buffer("x", "y", "z")
IndexedSeq(1.0, 2.0)
LinearSeq("a", "b", "c")

2) The same principle also applies for specific collections like HasMap, List … etc

List(1, 2, 3)
HashMap("x" -> 24, "y" -> 25, "z" -> 26)

3) All these collections get displayed with toString in the same way they are written above.
CollectionAPIExample1.scala

import java.awt.Color
import scala.collection.mutable.LinearSeq
import scala.collection.mutable.Buffer
import scala.collection.mutable.SortedSet
import scala.collection.mutable.LinearSeq

object CollectionAPIExample1 {
  def main(args: Array[String]): Unit = {
    println("Collection API First Example")
    println("===============================================================================")
    println("Traversable object values are: " + Traversable(1, 2, 3).toString() )    
    println("nIterable object values are: " + Iterable("x", "y", "z").toString() )
    println("nMap object values are: " + Map("x" -> 24, "y" -> 25, "z" -> 26).toString() )
    println("nSet object values are: " + Set(Color.red, Color.green, Color.blue).toString())
    println("nSortedSet object values are: " + SortedSet("hello", "world").toString() )
    println("nBuffer object values are: " + Buffer("x", "y", "z").toString())
    println("nIndexedSeq object values are: " +IndexedSeq(1.0, 2.0).toString())
    println("nIndexedSeq object values are: " +LinearSeq("a", "b", "c").toString())
    println("n===============================================================================")
  } 
}

Out put:

 Collection API First Example
===============================================================================
Traversable object values are: List(1, 2, 3)

Iterable object values are: List(x, y, z)

Map object values are: Map(x -> 24, y -> 25, z -> 26)

Set object values are: Set(java.awt.Color[r=255,g=0,b=0], java.awt.Color[r=0,g=255,b=0], java.awt.Color[r=0,g=0,b=255])

SortedSet object values are: TreeSet(hello, world)

Buffer object values are: ArrayBuffer(x, y, z)

IndexedSeq object values are: Vector(1.0, 2.0)

IndexedSeq object values are: MutableList(a, b, c)

===============================================================================

Operations in Class Traversable :
1) The only abstract operation in Traversable is foreach

 def foreach[U](f: Elem => U) 

Here f is place holders, to each element.
The type of the operation is Elem => U,
where Elem is the type of the collection’s elements
and U is an arbitrary result type.
CollectionAPITraversable.scala

import scala.Traversable

object CollectionAPITraversable {
  def main(args: Array[String]) {
    println("Collection API Traversable foreach Example")
    println("===============================================================================")
    println(Upper.upper("A", "First", "Scala", "Program"))
    println("n===============================================================================")
  }
}

object Upper {
def upper(strings: String*) = strings.map(_.toUpperCase()).foreach(println(_))
}

Out Put:

Collection API Traversable foreach Example
===============================================================================
A
FIRST
SCALA
PROGRAM
()

===============================================================================

Example2

import scala.Traversable

object CollectionAPITraversable {
  def main(args: Array[String]) {
    val ls = List(1, "two", 3.1, '4')   
    ls.foreach(println(_))    
  }  
}

Out Put:

1
two
3.1
4

Example3

object CollectionAPITraversable {
  def main(args: Array[String]) {
    val names = List("Jhon", "Bent", "Kent", "Juliat", "Smith")   
    for( name <- names if name.startsWith("J"))     
      println( name )
  }
}

Out Put:

Jhon
Juliat

More Emples

object CollectionAPITraversable {
  def main(args: Array[String]) {
    println("===================================================")
    println("                  Example 1                        ")
    println("===================================================")
    val names = List("Jhon", "Bent", "Kent", "Juliat", "Smith")   
    names.foreach( i => println(i.toUpperCase()) )
    println("===================================================")
    println("                  Example 2                        ")
    println("===================================================")   
    names.foreach( i => if( i.startsWith("S")) 
                    println(i.toUpperCase()))
    println("===================================================")
    println("                  Example 3                        ")
    println("===================================================")
    val ls = List((1, "a"), (2, "b"), (3, "c"));
    ls.foreach{ i => val(x, y) = i 
      println( x +"  "+ y)}
    println("===================================================")
  }
}

Out Put:

===================================================
                  Example 1                        
===================================================
JHON
BENT
KENT
JULIAT
SMITH
===================================================
                  Example 2                        
===================================================
SMITH
===================================================
                  Example 3                        
===================================================
1  a
2  b
3  c
===================================================

*** Venkat – Happy leaning ****