过滤数字,并且将每个值乘以 3

  1. val list1: List[Any] = List(30, "aa", 70, false, 10, 20)
  2. // 得到新的集合, 新的集合只有整数的平方
  3. // 1. 先过滤出来数字
  4. // 2. 对数字做map (对数据结构调整)
  5. val list2 = list1.filter(_.isInstanceOf[Int]) //过滤掉除了int类型的其它类型的
  6. .map(_.asInstanceOf[Int]) //给值转成int类型的
  7. .map(x => x * x) // 将每个值乘以3
  8. println(list2) // 输出: List(900, 4900, 100, 400)

统计单词的数量

准备txt文档数据:

zjj zjj2
aaa ccc
bbb
ddd
zzz
sss
zjj
aaa
aaa

案例代码:

   // 读取一个文件的内容, 统计这个文件中,每个单词出现的次数
    val path = """D:\Downloads\ceui.txt"""
    // 1. 读文件内容, 放入到集合中   文件中的每一行
    val lines = Source.fromFile(path, "utf-8").getLines().toList
    // 2. 切割单词 使用非单词字符
    val words = lines.flatMap(_.split("\\W+"))
    // 3. 把相同的单词分组
    val wordGrouped = words.groupBy(w => w)
    // 4. 进行map, 计算每个单词的个数

    val wordCount = wordGrouped.mapValues(_.size)
    // 按照单词的数量降序, 取top3
    val result = wordCount.toList.sortBy(_._2)(Ordering.Int.reverse).take(3)
    println(result) // 输出: List((aaa,3), (zjj,2), (zjj2,1))