scala 常用API及示例代码

一、数组的常用操作

定长数组

操作说明
:+在数组的最右边增加元素
+:在数组的最左边增加元素
++拼接两个数组,并返回一个新的数组
++=拼接两个数组
mkString(str)将数组转成字符,按照 指定的 “str” 进行拼接
length/size获取数组的大小(长度)
sum求数组元素的总和(仅对数值型数组有效)
head获取第一个元素
last获取最后一个元素
tail去除第一个元素, 剩下的元素组成的集合
take(2)去前 n个元素, 返回时一个新的集合

可变数组:

操作说明
:+在数组的最右边增加元素
+在数组的最左边增加元素
+=在数组最右边增加元素
-=删除数组元素,仅删除第一次匹配的元素
++拼接两个数组,并返回一个新的数组
++=拼接两个数组
insert(i, n)在指定下标插入元素
remove(n)删除指定下标的元素
remove(n, c)从指定下标开始删除元素,连续删除 c 个

二、List集合的常用操作

操作说明
:+在集合的最右边增加元素
+:在集合的最左边增加元素
::在集合的最左边增加元素
++拼接两个集合
:::拼接两个集合
:: Nil拼接多个数字成为 集合

三、Set集合的常用操作

操作说明示例
set.add(n)
set += n
set.+=(n)
添加元素set2.add(100) // 方式一
set2 += 101 // 方式二
set2.+=(102) //方式三
set.remove(n)
set -= n
set.-=(n)
删除元素set2.remove(100)
set2 -= 101
set2.-=(102)
for (elem <- set)遍历元素
set++=list/set拼接set2 ++= List(-1,-2,-3)
set2 ++= mutable.Set(-10,-20,-30)
set1 ++ set2
set1.union(set2)
A | B
取两个集合的并集
set1 & set2
set1.intersect(set2)
取两个集合的交集
set1 &~ set2
set1 -- set2
set1.diff(set2)
取两个集合的差集

四、Map的常用操作

取值

val mutableMap: mutable.Map[String, Int] = 
		mutable.Map[String, Int]("kino" -> 18, "jerry" -> 20, "Bob" -> 40)
操作说明示例备注
map(K)根据指定 Key取值mutableMap("kino")如果 K 存在, 返回对应 V, 如果 K 不存在, 抛异常
map.get(K).get根据指定 Key取值${mutableMap.get("kino").get}Map.get(K): 返回一个 Option对象, 如果 K 存在, 返回 Some, 如果 K 不存在, 返回 None
Map.get(K).get: 如果 K 存在, 返回 V, 如果不存在, 抛异常
map.getOrElse(K, V)根据指定 Key取值mutableMap.getOrElse("kino", 10)如果 K 存在, 返回 V, 如果不存在, 返回默认值
map.contains(K)检查 K 是否存在mutableMap.contains("kino")

增删改查:

val map: mutable.Map[String, Int] = mutable.Map(("A", 1), ("B", 2), ("C", 3))
操作说明示例备注
map(K) = VMap 更新map(“D”) = 4① 如果被增加的 Key已存在, 则覆盖之前的 V
② Map 是可变的才能修改, 否则报错
map+= (K -> V)Map 插入map(“D”) = 4如果被增加的 Key已存在, 则覆盖之前的 V
map+= ((K,V),(K,V))Map 插入多个map += ((“F”, 5), (“E”, 6))如果被增加的 Key已存在, 则覆盖之前的 V
map-= (K -> V)Map 删除map -= “E”删除元素, K 存在则删除, 不存在忽略
map-= ((K),(K))Map 删除多个map -= (“F”, “D”)删除元素, K 存在则删除, 不存在忽略

遍历:

val map: mutable.Map[String, Int] = mutable.Map(("A", 1), ("B", 2), ("C", 3))

println("----------------map 遍历元素方式一: (k, v) <- map-----------------")
for ((k, v) <- map) {
    println(s"$k : $v")
}
println("----------------map 遍历元素方式二: v <- map.keys-----------------")
for (keys <- map.keys) {
    println(keys)
}
println("----------------map 遍历元素方式三: v <- map.values-----------------")
for (values <- map.values) {
    println(values)
}
println("----------------map 遍历元素方式四: v <- map,返回的是元祖-----------------")
for (v <- map) {
    println(v)
    println(s"$v key=${v._1} val=${v._2}")// 以元祖的形式取值
}

运行结果:

----------------map 遍历元素方式一: (k, v) <- map-----------------
A : 100
C : 3
B : 2
----------------map 遍历元素方式二: v <- map.keys-----------------
A
C
B
----------------map 遍历元素方式三: v <- map.values-----------------
100
3
2
----------------map 遍历元素方式四: v <- map-----------------
(A,100)
(A,100) key=A val=100
(C,3)
(C,3) key=C val=3
(B,2)
(B,2) key=B val=2

Process finished with exit code 0

五、队列的常用操作

//可变队列的创建
val queue = new mutable.Queue[Int]
操作说明示例
+=给队列增加元素queue += 1
++=给队列追加集合queue ++= List(14,5,6)
enqueue(n1,n2...)入队queue.enqueue(100,1000,10000)
dequeue()出队,从队列的头部去除元素, 队列本身会变
head返回队列第一个元素queue.head
last返回队列最后一个元素queue.last
tail取出队尾的数组(第一个之后的数据)queue.tail
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值