Scala基础之集合
seq,set,map特点
1.Seq,是一组有序的元素。
2.Set,是一组没有重复元素的集合。
3.Map,是一组k-v对。
Array
array(不可变,可变);数据有序,可以放重复,不限制类型 | Array, ArrayBuffer Array ArrayBuffer 定义空:val array:ArrayBuffer[Any] = ArrayBuffer()
val strings = Array("aa","bb") println(strings) result: [Ljava.lang.String;@1593948d
List
List(不可变,可变);数据有序,可以放重复,不限制类型 | List, ListBuffer List ListBuffer 定义空:val lb:ListBuffer[Any] = ListBuffer()
Set
Set(不可变,可变);无序,不可重复,不限制类型 | Set, mutable.Set Set mutable.Set 定义空:val muset:mutable.Set[Any] = mutable.Set()
Map
Map(不可变,可变);无序,K不能重复的K-V键值对集合 | Map, mutable.Map 源码 JDK1.8 之前 Entry JDK1.8 之后 Node => TreeNode mutable.Map定义空map val map2:mutable.Map[String,Int] = mutable.Map() mutable.Map查找key,value;Option : 选项,对象只有2个 Some, None val maybeInt:Option[String] = map2.get("e") maybeInt可以通过get获取到value maybeInt.get
val maybeInt1: Option[Int] = map1.get("f") // Option类型专门为了解决空指针问题设计的 // Option : 选项,对象只有2个 Some, None if ( maybeInt1.isEmpty ) { println("没有对应key的值, 提供默认值 : " + maybeInt1.getOrElse(0)) } else { println("对应key的值为" + maybeInt1.get) }
Tuple
Tuple(不可变);最多存放元素的数量为22个;类型没有约束;通过顺序号进行访问;组,可以默认排序,先比较第一个,如果相同,比较第二个,依此类推 元组的定义 val t : (Int, String, Int) = (1, "zhangsan", 30) 访问方式: 通过._数字方式访问 Map嵌套元组 val map = Map(("a", 1), ("b", 2), ("c", 3)) 可以foreach(t=>t._1 + "=" + t._2)来取key,value
Queue
Queue(不可变,可变) | immutable.Queue,mutable.Queue mutable.Queue 定义空 val queue:mutable.Queue[String] = mutable.Queue() 添加&获取后队列中踢除 enqueue,dequeue
本文为原创文章,转载请标明出处