天天看點

【大資料開發】scala練習

package day03

import scala.collection.mutable
import scala.collection.mutable.ListBuffer

/**
 * 1. 建立一個List(3,2,4,6,7,5,1,0,9,8)
 * 将list中每個元素乘以2後生成一個新的集合
 * 将list1中的偶數取出來生成一個新的集合
 * 将list1排序後生成一個新的集合
 * 反轉排序順序
 * 将list1中的元素4個一組方法(grouped),看一下是什麼資料類型
 * 将上面方法得到的分組類型轉換成List
 * 将多個list壓扁成一個List
 */

object HomeWork2 {
    def main(args: Array[String]): Unit = {
        val list = List(3, 2, 4, 6, 7, 5, 1, 0, 9, 8)
       
        //元素乘以2
        val newList1 = list.map(_ * 2)
        //将list1中的偶數取出來生成一個新的集合
        val newList2 = newList1.filter(x => x % 2 == 0)

        //将list1排序後生成一個新的集合
        val newList3 = newList2.sorted

        //反轉排序順序
        val newList4 = newList3.sorted.reverse

        //将list1中的元素4個一組方法(grouped),看一下是什麼資料類型
        val ite = list.grouped(4)
        //ite.foreach(x => println(x))
        
        //将上面方法得到的分組類型轉換成List
        //不能用下面的方式做,因為ite是一個疊代器,疊代完就沒有元素了,不是用來存儲的
        val newList5  = ite.toList
        println(newList5)

        //應當使用下面的方式
        val newList7: ListBuffer[List[Int]] = mutable.ListBuffer()
        while(ite.hasNext){
            newList7 += ite.next()
        }

        //将多個list壓扁成一個List
        val newList6: List[Int] = newList5.flatten
        for (index <- newList6.indices){
            print(newList6(index) + " ")
        }
    }
}

           

繼續閱讀