📜  Scala Trait 可遍历 |第 4 组

📅  最后修改于: 2022-05-13 01:54:43.374000             🧑  作者: Mango

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 的元素复制到数组或缓冲区。
  • 查看操作:
    这里的操作是viewview(from, to) 。这些操作用于生成对给定 Traversable 集合的视图。