Scala集合方法大全(倾心整理)

这篇博客详细整理了Scala集合的各种操作,包括提取、修改、迭代、分组、聚合、验证、容量、转变、排序、字符串拼接和查找等功能,涵盖了常用的集合方法,并提供了案例帮助理解和记忆。
摘要由CSDN通过智能技术生成

这篇博客按Scala方法不同的实现功能进行汇总,含案例方便记忆

主要分为十一大类:

提取、修改、迭代处理、分段|分组、聚合、验证、

容量、转变、顺序(排序)、字符串拼接、查找(根据值取下标)

提取

foreach

遍历序列中所有元素

val arr:Array[Int] =Array(1,2,3,4,1)
arr.foreach(println)
//结果
1
2
3
4
1

apply

根据下标提取指定元素,存在下标越界异常

var arr1=Array(2,4,7,3,9)
println(arr1.apply(2))
//结果
7

applyOrElse

根据下标提取,若下标越界默认返回参数2函数的返回值

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
    println(array.applyOrElse(1,(i:Int)=> i*2))
//结果
2

//越界:
val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
    println(array.applyOrElse(10,(i:Int)=> i*2))
//结果
20

head

提取头元素,空数据报异常

println(Array(1, 2, 3, 4).head)

//结果
Some(4)

headOption

提取头元素,配合isEmpty判定,安全提取

    val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)    
    val head = array.headOption
    if (head.isEmpty){
      println("empty")
    }else{
      println(head.get)
    }
//结果
1

last

提取尾元素,空数据报异常

println(Array(1, 2, 3, 4).last)
//结果
4

lastOption

提取尾元素,配合isEmpty判定,安全提取

    val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)    
    val last = array.lastOption
    if (last.isEmpty){
      println("empty")
    }else{
      println(last.get)
    }
//结果
9

take

从左边提取元素,返回新的数组

val arr:Array[Int] =Array(1,2,3,4,1)
println(arr.take(3).mkString(","))
println(arr.take(4).mkString(","))
//结果
1,2,3
1,2,3,4

takeRight

从右边提取元素,返回新的数组

val arr:Array[Int] =Array(1,2,3,4,1)
println(arr.takeRight(2).mkString(","))
println(arr.takeRight(4).mkString(","))
//结果
4,1
2,3,4,1

takeWhile

从左边提取满足predicate条件的元素    

从下标0开始提取,若第一个元素不满足直接返回空数组,否则从第一个满足开始,到第一个不满足结束

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.takeWhile((a:Int) => a>5).foreach(print)
//结果
空数组


val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.takeWhile((a:Int) => a>0).foreach(print)

//结果
1 2 3 4 5 6 7 8 9

filter

提取满足参数函数条件的元素

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.filter((a:Int)=> a%2==1).foreach(print)
//结果
13579

filterNot

提取不满足参数函数条件的元素

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.filterNot((a:Int)=> a%2==1).foreach(print)
//结果
2468

collect

执行一个并行计算(偏函数),得到一个新的数组对象(通过偏函数对某些元素进行操作)

    val p : PartialFunction[Int,Int]=(a:Int)=> a match {
      case x if(x%2==1)=> x
    }
    array.collect(p).foreach(println)
    println("-------------")
    array.collect({
      case x if(x%2==0) => x
    }).foreach(println)
//结果
1 3 5 7 9
2 4 6 8

collectFirst

找到第一个符合偏函数定义的元素

array.collectFirst({
case x if(x%2==0) => x
}).foreach(println)
//结果
2

find

提取左一满足参数条件的元素(处理,性能高,类似takeWhile)

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.find((a:Int)=>a>3).foreach(print)
//结果
4

slice

提取一个区间内的元素

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
val sub:Array[Int] = array.slice(2, 4)
    sub.foreach(println)
//结果
3 4

init

提取排除最后一个元素之外的所有元素

val arr1 = Array(1, 2, 3, 5, 1, 2)
val init: Array[Int] = arr1.init
init.foreach(println)
//结果
1
2
3
5
1

inits

 递归依次提取排除最后一个元素之外的所有元素

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.inits.foreach(a=>println(a.mkString(",")))
//结果
1,2,3,4,5,6,7,8,9
1,2,3,4,5,6,7,8
1,2,3,4,5,6,7
1,2,3,4,5,6
1,2,3,4,5
1,2,3,4
1,2,3
1,2
1

tail

提取排除第一个元素之外的所有元素

val arr1 = Array(1, 2, 3, 5, 1, 2)
arr1.tail.foreach(println)
//结果
2
3
5
1
2

tails

递归依次提取排除第一个元素之外的所有元素

val array : Array[Int] = Array(1,2,3,4,5,6,7,8,9)
array.inits.foreach(a=>println(a.mkString(",")))
//结果
1,2,3,4,5,6,7,8,9
2,3,4,5,6,7,8,9
3,4,5,6,7,8,9
4,5,6,7,8,9
5,6,7,8,9
6,7,8,9
7,8,9
8,9
9

lift

给序列的索引,返回该索引处的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值