天天看点

Scala集合练习

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