scala基础4⃣️集合
来源:互联网 发布:快速背单词软件 编辑:程序博客网 时间:2024/06/06 18:18
map/set/list
==============================================集合==========================================
@可变集合可以在适当的地方被更新或扩展,意味着你可以修改、添加、移除一个集合的元素。
@而不可变集合类,相比之下,永远不会改变。不过,你仍然可以模拟添加,移除或更新操作。 但是这些操作都将返回一个新的集合,同时原来的集合不发生改变。
@不可变的都在immutable里,可变的都在mutable里
---------------------------List-------------------------------
//不可变
val l=List(1,2,3,4,5)
println(l.head) //第一个元素
println(l.tail) //除了第一个元素外的其他集合
val l2=2::Nil //Nil为空List集合对象
println(l2)
val l3=1::l2
//val l3=l2::1 //错误,List需要写在右边
println(l3)
val l4=1::2::3::Nil
println(l4)
val l5="aaa"::6.6::l //元素可以是任意类型
println(l5)
-------------------------------ListBuffer------------------
//可变
val l5=scala.collection.mutable.ListBuffer[Int]();
l5+=1;
l5+=(2,3)
l5++=List(4,5,6) //-=和--=类似
for(x<-l5)
print(x+" ")
println("\n"+l5)
println(l5.isEmpty)
println(l5.tail.head) //2
val l=l5.toList //转为不可变List[Int]
val a=l5.toArray //转为数组Array[Int]
-------------------------immutable.Set--------------------------
//不可变
val s=Set(1,2)
//s+=3 //错误,这是不可变的
s+3 //set本身并不发生变化
//val s1=3+s //错误,Set必需写在左边
println("不变:"+s)
println(s+3) //-和--类似
println(s+3+4+5)
println(s+(3,4,5))
println(s++List(3,4,5))
println(s++Set(3,4,5))
//有序Set
val s2=scala.collection.immutable.SortedSet(2,1,4,5,3)
println(s2)
-------------------------------------mutable.Set-----------------------
//可变
val s=scala.collection.mutable.Set(1,2)
s+=3 //注意,可变Set可以使用+=
s++=Set(3,4,5)
println(s)
var s2=scala.collection.mutable.SortedSet(9,1,8,5,6)
println(s2)
-----------------------------------immutable.Map---------------------------
//不可变
val m=Map("a"->100,"b"->200)
println(m)
println(m("a"))
//m("a")=111 //错误
//println(m("c")) //异常
println(m.getOrElse("c",300)) //当键不存在时,返回默认值
//有序Map,注意:没有mutable.SortedMap
val m1=scala.collection.immutable.SortedMap("b"->200,"c"->300,"a"->100)
println(m1)
---------------------------------------mutable.Map--------------------------------
//可变
val m=scala.collection.mutable.Map("a"->100,"b"->200)
m("a")=101
println(m("a"))
println(m.getOrElse("c",300))
m+=("x"->300,"y"->400)
m-="b"
println(m)
---------------------------------------遍历Map-----------------------------------
//可变、不可变都可以用
val m=scala.collection.mutable.Map("a"->100,"b"->200,"c"->300,"d"->400)
for((k,v)<-m)
println(k+" "+v)
for(k<-m.keySet)
println(k+": "+m(k))
for((k,_)<-m)
println(k+" "+m(k))
for(v<-m.values)
println("value: "+v)
for((_,v) <- m)
println(v)
-----------------------------------------元组Tuple----------------------------
//相当于Object[],元素的类型可以不一样
val a=(1,2,3,"aaa","bbb")//类型任意
println(a._1) //_1表示元组的第一个元素
println(a._4)
for(i <- 0 until a.productArity) //注意:元组下标的起点依然是0
println(a.productElement(i))
- scala基础4⃣️集合
- scala基础语法-集合
- scala的集合基础
- scala基础---集合操作汇总
- Spark基础-Scala集合操作
- Scala 基础1⃣️基础语法
- Spark 基础 —— Scala 集合
- scala基础------>序列、集合、映射类型特点
- Spark基础-Scala集合的操作
- Spark基础-Scala集合函数式编程
- Scala 基础2⃣️数组
- scala基础3⃣️函数
- scala基础5⃣️样例类
- scala语法 基础4
- Scala集合
- Scala集合
- Scala 集合
- Scala集合
- 动态增加div,实现div之间的切换,不刷新页面
- 已知两个链表head1 和head2 各自有序,请把它们合并成一个链表依然有序。
- Android状态栏微技巧,带你真正理解沉浸式模式
- 内省
- Spring boot(二)
- scala基础4⃣️集合
- 稳定排序:如果Ai = Aj,Ai原来在位置前,排序后Ai还是要在Aj位置前
- linux系统调用列表
- HDU6170【DP+树状数组+差分维护】
- StarFarming
- POJ-1847 Tram( 最短路 )
- 记录lombok的使用
- 浅析进程与线程的亲戚关系
- 货币系统