(7)scala 集合定义 & 常用方法

集合定义:
Scala的集合有三大类:序列Seq、集Set、映射Map,所有的集合都扩展自Iterable特质。
对于几乎所有的集合类,Scala都同时提供了可变和不可变的版本,分别位于以下两个包 scala.collection.immutable
scala.collection.mutable

  1. 可变集合可以在适当的地方被更新或扩展。这意味着你可以修改,添加,移除一个集合的元素。

  2. 不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。但是这些操作将在每一种情况下都返回一个新的集合,同时使原来的集合不发生改变。

package scalaBase

object ScalaCollection {
  def main(args: Array[String]): Unit = {
    val list = List(1,2,3,4)

    // 集合长度
    println("size =>" + list.size)
    println("length =>" + list.length)
    // 判断集合是否为空
    println("isEmpty =>" + list.isEmpty)
    // 集合迭代器
    println("iterator =>" + list.iterator)
    // 循环遍历集合
    list.foreach(println)
    // 将集合转换为字符串
    println("mkString =>" + list.mkString(","))
    // 判断集合中是否包含某个元素
    println("contains =>" + list.contains(2))
    // 取集合的前几个元素
    println("take =>" + list.take(2))
    // 取集合的后几个元素
    println("takeRight =>" + list.takeRight(2))
    // 查找元素
    println("find =>" + list.find(x => x % 2== 0))
    // 丢弃前几个元素
    println("drop =>" + list.drop(2))
    // 丢弃后几个元素
    println("dropRight =>" + list.dropRight(2))
    // 反转集合
    println("reverse =>" + list.reverse)
    // 去重
    println("distinct =>" + list.distinct)

    val list1 = List(3,4,5,6)
    // 集合最小值
    println("min => " + list.min)
    // 集合最大值
    println("max => " + list.max)
    // 集合求和
    println("sum => " + list.sum)
    // 集合乘积
    println("product => " + list.product)
    // 集合简化规约
    println("reduce => " + list.reduce((x:Int,y:Int)=>{x+y}))
    println("reduce => " + list.reduce((x,y)=>{x+y}))
    println("reduce => " + list.reduce((x,y)=>x+y))
    println("reduce => " + list.reduce(_+_))
    // 集合简化规约(左)
    println("reduceLeft => " + list.reduceLeft(_+_))
    // 集合简化规约(右)
    println("reduceRight => " + list.reduceRight(_+_))
    // 集合折叠
    println("fold => " + list.fold(0)(_+_))
    // 集合折叠(左)
    println("foldLeft => " + list.foldLeft(0)(_+_))
    // 集合折叠(右)
    println("foldRight => " + list.foldRight(0)(_+_))
    // 集合扫描
    println("scan => " + list.scan(0)(_+_))
    // 集合扫描(左)
    println("scanLeft => " + list.scanLeft(0)(_+_))
    // 集合扫描(右)
    println("scanRight => " + list.scanRight(0)(_+_))

    // 集合映射
    println("map => " + list.map(x=>{x*2}))
    println("map => " + list.map(x=>x*2))
    println("map => " + list.map(_*2))
    // 集合扁平化
    val list2= List(
      List(1,2),
      List(3,4)
    )
    println("flatten =>" + list2.flatten)
    // 集合扁平映射
    println("flatMap =>" + list2.flatMap(list=>list))
    // 集合过滤数据
    println("filter =>" + list.filter(_%2 == 0))
    // 集合分组数据
    println("groupBy =>" + list.groupBy(_%2))
    // 集合排序
    println("sortBy =>" + list.sortBy(num=>num)(Ordering.Int.reverse))
    println("sortWith =>" + list.sortWith((left, right) => {left < right}))
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值