scala 集合操作(截取、过滤和分组)

(1)scala集合截取

    集合截取 -- slice ,看代码如下:

// 截取集合的一部分
val t = Traversable(1 to 10 :_*)
println(t.slice(2,5))
// List(3, 4, 5)

取集合前N个元素 -- take takewhile

// 取前面6个元素
println(t.take(6))
// List(1, 2, 3, 4, 5, 6)

 takewhile -- 一直取元素直到满足某个条件为止。

// 一直取元素直到满足某个条件为止
println(t.takeWhile(_<6))
// List(1, 2, 3, 4, 5)

相反地,drop 为跳过某些元素,dropwhile 为跳过某些元素直到 满足条件为止。

(2)过滤元素--》filter

过滤元素 -- filter

  // filter filterNot withFilter 过滤元素
  println(t.filter(_ <6))
  // List(1, 2, 3, 4, 5)
  println(t.filterNot(_ < 6))
  // List(6, 7, 8, 9, 10)
  println(t.withFilter(_ < 6 ))
  // scala.collection.TraversableLike$WithFilter@3dd3bcd
  t withFilter(_ > 4) withFilter(_ <8) foreach(x=>print(x+" "))
  // 5 6 7 

withfilter 可以连着过滤条件,最后通过foreach进行输出。

(3)集合分组

// 给集合分组 splitAt span  partition groupBy
// splitAt 按照索引给集合分组
println(t.splitAt(5))
// (List(1, 2, 3, 4, 5),List(6, 7, 8, 9, 10))
// span 按照条件给集合分组
println(t.span(_< 7))
// (List(1, 2, 3, 4, 5, 6),List(7, 8, 9, 10))
// partition 遍历所有元素,按照条件给集合分组
println(t.partition(_<7))
// (List(1, 2, 3, 4, 5, 6),List(7, 8, 9, 10))
// groupBy 按照条件进行分组,生产分组关键字,形成一个map类型的集合
println(t.groupBy(_>3))
// Map(false -> List(1, 2, 3), true -> List(4, 5, 6, 7, 8, 9, 10))




  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值