Introducción:
Un rasgo raíz de toda la clase de las colecciones de Scala es Trait Traversable . Está disponible en la posición más alta de la jerarquía de la colección. Tiene únicamente una operación abstracta, que es foreach . Aquí se garantiza que cada una de las operaciones se ejecutará en un enfoque de subproceso único.
Sintaxis:
def foreach[U](f: Elem => U)
Aquí, la operación f se refiere a todos los elementos de la colección y Elem => U es el tipo de operación, donde “Elem” es el tipo de elementos de la colección de Scala y “U” es un tipo de resultado inconsistente.
Algunos puntos importantes:
- Traversable se logra mediante las clases de la colección de Scala.
- Es obligatorio que Traversable defina solo el método foreach , ya que Traversable puede heredar todos los demás métodos.
- El método foreach podría atravesar todos los elementos de la clase de colección de Scala.
- Hay numerosos métodos concretos que están definidos por Traversables.
- List, Array, Map, Set y muchos más son la subclase de Traversables.
- Método abstracto:
el único método abstracto aquí es foreach , que puede atravesar todos los elementos de la colección.
Ejemplo ://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)
}
}
}
Producción:geeks for geeks
Aquí, todos los elementos de la array mencionados anteriormente se recorren mediante el método foreach y luego se convierten de mayúsculas a minúsculas.
Ejemplo:// 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
))
}
}
Producción:12 36 48 42 60 66 78
Aquí, el método foreach recorre todos los números de la lista y multiplica cada uno de ellos.
- Operación de adición:
aquí, la operación de adición, es decir, ++ agrega dos Traversables juntos o agrega cada uno de los elementos de un iterador a un Traversable.
Ejemplo:// 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
s
1
=
x ++ y
val
s
2
=
y ++ x
//Displaying set
println(s
1
)
//Displaying list
println(s
2
)
}
}
Producción:Set(5, 10, 1, 9, 7, 18, 8) List(1, 5, 8, 18, 7, 8, 9, 10)
Aquí, cuando se agrega un conjunto a una lista, se genera un conjunto y cuando se agrega una lista a un conjunto, se genera una lista.
- Operaciones de mapa:
las tres operaciones de mapa son map , flatMap y collect .
Estas operaciones de mapa crean una nueva colección asignando algunas funciones a los elementos de la colección Scala.
Ejemplo :// 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)
}
}
Producción:Set(72, 81, 45, 90)
Aquí, la operación Mapa (es decir, mapa) asignará la función establecida en cada elemento de un Traversable y devolverá una nueva colección como salida.
Ejemplo :// 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)
}
}
Producción:List(10, 11, 12, 13, 14, 15, 16)
Aquí, flatMap asignará la función indicada en cada elemento dentro de los elementos y luego concatenará la salida.
Ejemplo :// 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)
}
}
Producción:List(11, 5, 17)
Aquí, collect asignará una función parcial a cada elemento de Traversable y dará como resultado una colección no idéntica.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA