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

 

 

posted @ 2021-05-28 21:22  亚洲哈登  阅读(49)  评论(0编辑  收藏  举报