scala集合常用函数

基本属性和常用操作

val list = List(23, 54, 68, 91, 15)
    val set = Set(1,2,3,4,5,6)

    //    (1)获取集合长度
    println(list.length)

    //    (2)获取集合大小
    println(list.size)
    println(set.size)

    //    (3)循环遍历
    for( elem <- list ) print(elem + "\t")
    println()
    set.foreach( elem => print(elem + "\t") )
    println()

    //    (4)迭代器
    val iter = list.iterator
    while(iter.hasNext)
      print(iter.next() + "\t")

    println()

    for( elem <- set.iterator ) print(elem + "\t")

    println()

    //    (5)生成字符串
    println(list.mkString("--"))
    println(set.mkString(" $$ "))

    //    (6)是否包含
    println(list.contains(23))
    println(set.contains(13))

衍生集合

val list1 = List(23, 54, 68, 91, 15)
    val list2 = List(35, 48, 69, 54, 23, 91, 102, 68, 231, 563)

    //    (1)获取集合的头
    println(list1.head)

    //    (2)获取集合的尾(不是头的就是尾)
    println(list1.tail)

    //    (3)集合最后一个数据
    println(list1.last)

    //    (4)集合初始数据(不包含最后一个)
    println(list1.init)

    //    (5)反转
    println(list1.reverse)

    //    (6)取前(后)n个元素
    println(list2)
    println(list2.take(5))

    println(list2.reverse.take(3).reverse)
    println(list2.takeRight(3))

    //    (7)去掉前(后)n个元素
    println(list2.drop(2))
    println(list2.dropRight(5))
    println(list2)

    //    (8)并集
    println("================union=================")
    println(list1.union(list2))
    println(list2.union(list1))
    println(list1)
    println(list2)

    //    (9)交集
    println("============intersection=============")
    println(list1.intersect(list2))
    println(list2.intersect(list1))
    println(list1)
    println(list2)

    //    (10)差集
    println("=============diff============")
    println(list1.diff(list2))
    println(list2.diff(list1))
    println(list1)
    println(list2)

    //    (11)拉链
    println(list1.zip(list2))
    println(list2.zip(list1))

    //    (12)滑窗
    println("======================")
    println(list2)
    list2.sliding(3).foreach( println )

    println("======================")

    list2.sliding(5, 3).foreach( println )

    println("======================")

    list2.sliding(3, 3).foreach( println )

计算函数

val list = List(23, 54, 68, 91, 15)

    //    (1)求和
    println(list.sum)

    //    (2)求乘积
    println(list.product)
    println(List(1,2,3,4,5).product)
    println((1 to 10).product)

    //    (3)最大值
    println(list.max)

    //    (4)最小值
    println(list.min)

    //    (5)排序
    println(list.sorted)
    println(list)
    println(list.sorted(Ordering[Int].reverse))

    println("========================")

    println(list.sortBy(data => data)(Ordering[Int].reverse))
//    println(list.sortBy(_)(Ordering[Int].reverse))
    println(list.sortWith(_ > _))
val list = List(35, 48, 69, 54, 23, 91, 102, 68, 231, 563)

    // 1. 过滤
    val evenList = list.filter( data => data % 2 == 0 )
    val oddList = list.filter( _ % 2 != 0 )
    println(evenList)
    println(oddList)

    // 2. map
    val mul2List = list.map( _ * 2 )
    println(mul2List)

    // 3. 扁平化
    val nestedList: List[List[Int]] = List(List(1,2,3), List(4,5,6), List(7,8,9))

    val flatList1 = nestedList(0) ::: nestedList(1) ::: nestedList(2)
    println(flatList1)

    val flatList2 = nestedList.flatten
    println(flatList2)

    println("==============================")

    // 4. 扁平映射
    val strings: List[String] = List("hello world", "hello scala", "hello atguigu", "hello atguigu with scala")

    val splitStrings: List[Array[String]] = strings.map( _.split(" ") )
    println(splitStrings)
    val flattenWordList: List[String] = splitStrings.flatten
    println(flattenWordList)

    // 将map和flatten合并为一步操作
    val flattenList = strings.flatMap( _.split(" ") )
    println(flattenList)

    // 5. 分组操作
    val groupedMap: Map[Int, List[Int]] = list.groupBy( _ % 2 )
    println(groupedMap)

    val groupedWordMap: Map[Char, List[String]] = flattenWordList.groupBy( data => data.charAt(0) )
    println(groupedWordMap)
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页