object Homework_Scala_03 {
def main(args: Array[String]): Unit = {
//1.建立一個List(3,2,4,6,7,5,1,0,9,8)
val list: List[Int] = List(3,2,4,6,7,5,1,0,9,8)
println("建立的集合為:"+list)
//2.将list中每個元素乘以2後生成一個新的集合
val newlist1: List[Int] = list.map(_*2)
println("list中每個元素乘以2後生成一個新的集合為:"+newlist1)
//3.将list1中的偶數取出來生成一個新的集合
val newlist2 = list.filter(_%2==0)
println("list中的偶數取出來生成一個新的集合為:"+newlist2)
//4.将list1排序後生成一個新的集合
val sorted_list: List[Int] = list.sorted
println("排序後"+sorted_list)
//5.反轉排序順序
val reverse_sortlist: List[Int] = sorted_list.reverse
println("反轉排序後的集合"+reverse_sortlist)
//6.将list1中的元素4個一組方法(grouped),看一下是什麼資料類型
//将上面方法得到的分組類型轉換成List
val grouped_list: Iterator[List[Int]] = list.grouped(4)
val list1: List[List[Int]] = grouped_list.toList
println(list1)
val list_to_map: List[Int] = list1.map(_.size)
println(list_to_map)
//7.将多個list壓扁成一個List
val list1_flatten: List[Int] = list1.flatten
println(list1_flatten)
val strings_list: List[String] = List("hello tom hello jerry", "hello suke hello", " hello tom")
//8.先按空格切分,再壓平
val strings_flapmap: List[String] = strings_list.flatMap(_.split(" "))
println(strings_flapmap)
//9.wordcount
strings_flapmap.map((_,1))
val tuple: List[(String, Int)] = strings_flapmap.map((_,1))
println(tuple)
//根據單詞進行分組
//将相同的單詞進行分組
val stringToTuples: Map[String, List[(String, Int)]] = tuple.groupBy(_._1)
println(stringToTuples)
//單詞統計
val mapvalue_word: Map[String, Any] = stringToTuples.mapValues(_.size)
println(mapvalue_word)
//求出Top1,資料已經存在Map集合中
val to_list: List[(String, Any)] = mapvalue_word.toList
println(to_list)
//這個排序是根據傳入的指定值來進行排序的,預設是升序,無法直接降序,Spark中有一個和這個方法一樣的sortBy,是
//可以自由升序降序
}
}