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,是
//可以自由升序降序
}
}