Scala Trait 可遍历 |第 4 组
先决条件:-
Scala Trait 可遍历 |第一组
Scala Trait 可遍历 |第 2 组
Scala Trait 可遍历 |第 3 组
建议在此之前查看 Set-1、Set2 和 Set-3。
操作如下:
- 折叠:
这里的操作是reduceRight、reduceLeft、/: 或 foldLeft、:\ 或 foldRight 。此方法将二元运算应用于 Traversable 集合的连续元素。
例子 :// Scala program for operations // of Folds // Creating object object Folds { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(8, 6, 4, 2) // Applying method of // Folds // val y = x.foldLeft(0)(_ - _) or val y = (0 /: x)(_ - _) // Evaluates the Expression // given below and displays it // ((((0 - 8) - 6) - 4) - 2) println(y) } }
输出:-20
这里, foldLeft(0)是所需的操作,其中零是“初始值”。
此方法在给定 Traversable 集合的连续元素之间应用二元运算,从左到右移动并从初始值开始。
例子 :// Scala program for operations // of Folds // Creating object object Folds { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(8, 6, 4, 2) // Applying method of // Folds // val y = x.foldRight(0)(_ - _) or val y = (x :\ 0)(_ - _) // Evaluates the Expression // given below and displays it // (8 - (6 - (4 - (2 - 0)))) println(y) } }
输出:4
在这里, foldRight将在集合的连续元素之间执行二元运算,从左到右移动并以初始值结束。
例子 :// Scala program for operations // of Folds // Creating object object Folds { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(8, 6, 4, 2) // Applying method of folds val y = x.reduceLeft(_ - _) // Evaluates the Expression // given below and displays it // (((8 - 6) - 4) -2) println(y) } }
输出:-4
在这里, reduceLeft在集合的连续元素之间执行二元运算,如 foldLeft,但将给定集合的第一个元素视为初始值。
例子 :// Scala program for operations // of Folds // Creating object object Folds { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(8, 6, 4, 2) // Applying method of folds val y = x.reduceRight(_ - _) // Evaluates the Expression // given below and displays it // (8 - (6 - (4 - 2))) println(y) } }
输出:4
在这里, reduceRight将执行类似于foldRight的二元运算,但将集合的最后一个元素视为初始值。
- 具体折叠:
这里的操作是min、max、product 和 sum 。这些操作对不同类型的 Traversable 集合进行操作。
例子 :// Scala program for operations // of Specific folds // Creating object object Specificfold { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(3, 4, 7, 10) // Applying method of // Specific folds val y = x.sum // Displays sum of all the // elements in the list println(y) } }
输出:24
在这里, sum将返回给定集合中所有元素的总和。
例子 :// Scala program for operations // of Specific folds // Creating object object Specificfold { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(2, 5, 10, 12) //Applying method of //Specific folds val y = x.product //Displays product of all //the elements in the list println(y) } }
输出:1200
在这里, product将返回给定集合中所有元素的乘积。
例子 :// Scala program for operations // of Specific folds // Creating object object Specificfold { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(21, 15, 27, 22) // Applying method of // Specific folds val y = x.max // Displays largest element // of the list println(y) } }
输出:27
在这里, max将返回给定集合中所有元素的最大元素。
例子 :// Scala program for operations // of Specific folds // Creating object object Specificfold { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(21, 15, 27, 22) // Applying method of // Specific folds val y = x.min // Displays smallest element // of the list println(y) } }
输出:15
在这里, min将返回给定集合中所有元素的最小元素。
- 字符串操作:
这里的操作是addString, mkString, stringPrefix 。此操作用于提供另一种将给定的 Traversable 集合转换为字符串的方法。
例子 :// Scala program for operations // of Strings // Creating object object Strings { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(7, 8, 9, 10, 11) val v = List(21, 19, 17, 15) // Applying Strings operations val y = x.mkString(" < ") val w = v.mkString(" > ") // Displays all the elements // separated by (<) println(y) println("\n") // Displays all the elements // separated by (>) println(w) } }
输出:7 < 8 < 9 < 10 < 11 21 > 19 > 17 > 15
这里, mkString(“<”)是所需的操作,其中“<”是分隔符。
此操作用于返回由给定分隔符分隔的给定元素集合。
例子 :// Scala program for operations // of Strings // Creating object object Strings { // Main method def main(args: Array[String]) { // Creating List of numbers val x = List(7, 8, 9, 10, 11) // Creating StringBuilder val B = new StringBuilder("The numbers are: ") // Applying Strings operation val y = x.addString(B, ", ") // Displays all the elements // of the list in the String // builder separated by (,) println(y) } }
输出:The numbers are: 7, 8, 9, 10, 11
这里, addString(B, “, “)是所需的操作,其中“B”是字符串生成器,“, ”是分隔符。
此操作将给定的元素集合添加到由指定分隔符分隔的 StringBuilder 中。
例子 :// Scala program for operations // of Strings // Creating object object Strings { // Main method def main(args: Array[String]) { // Creating a Set of numbers val x = Set(7, 8, 9, 10, 11) // Applying Strings operation val y = x.stringPrefix // Displays the name of the // collection used println(y) } }
输出:Set
在这里, stringPrefix将返回使用的集合的名称。
- 复制操作:
两个 Copying 操作是 copyToArray 和 copyToBuffer。这些操作用于将 Traversable Collection 的元素复制到数组或缓冲区。 - 查看操作:
这里的操作是view , view(from, to) 。这些操作用于生成对给定 Traversable 集合的视图。