(TOC) 修改与查询h5>
<人力资源/>
Scala主要集合结构
1, Scala中的集合体系主要包括:<代码> Iterable 代码>,<代码> Seq (IndexSeq) 代码>,<代码>设置(SortedSet) 代码>,<代码>地图(SortedMap)> 代码。其中Iterable是所有集合特征的根特征。实际上Seq,设置,和地图都是子特征
-
<李>
是一个有先后次序的值的序列,比如数组或列表.IndexSeq允许我们通过×××的下表快速的访问任意元素。举例来说,ArrayBuffer是带下标的,但是链表不是。
李> <李> 组
是一组没有先后次序的值。在SortedSet中,元素以某种排过序顺序被访问。
李> <李>地图
是一组(键值)对偶.SortedMap按照键的排序访问其中的实体。
李>2, Scala中的集合是分成可变和不可变两类集合的,其中可变集合就是说,集合的元素可以动态修改,而不可变集合的元素在初始化之后,就无法修改了。分别对应<代码> scala.collection.mutable 代码>和<代码> scala.collection.immutable> 代码两个包。
3, Seq下包含了<代码> 代码>,<代码> ArrayBuffer 代码>,<代码> 代码>等列表子特征。其范围中就代表了一个序列,通常可以使用“1到”这种语法来产生一个范围。ArrayBuffer就类似于Java中的ArrayList。
列表
常列表用操作1
1,在Scala中,列表要么是Nil(及空表),要么是一个头元素加上一个尾巴,而尾巴又是一个列表
<代码> scala>val列表=(1、2、3、4、5) 列表:列表(Int)=(1、2、3、4、5) scala>list.head res29: Int=1 scala>list.tail res30:列表(Int)=(2、3、4、5) scala>list.isEmpty res31:布尔=false scala>==Nil列表 res32:布尔=false 代码>
下面是一个使用递归求集列表合中和的例子:
<代码> def递归(列表:列表(Int)): Int={ 如果(list.isEmpty) { 返回0//使用回显式结束程序的运行,否则0只是该如果语句的返回值,并不会结束程序的运行,当然如果用其他不用回也行 } 列表。头+递归(list.tail) }代码>
常列表用操作2
增加
<代码>//增/* a + + (B)——比;在列表一的尾部对添加另外一个列表B组成一个新的列的表 * + +:(B)——比;在列表一的首部对添加另外一个列表B组成一个新的列的表 *。:::(B)——比;在列表一的首部对添加另外一个列表B组成一个新的列的表 * - - - - - - *。:+(元素)——在在列表一的尾部添加一个元素,组成一个新的集合 *。+:(元素)——在在列表一的首部添加一个元素,组成一个新的集合 *。::(元素)——在在列表一的首部添加一个元素,组成一个新的集合 */代码>
测试如下:
<代码> scala>val左=列表(1、2、3、4) 左:列表(Int)=(1、2、3、4) scala>val右=名单(5、6、7) 右:列表(Int)=(5、6、7) scala>离开。+ +(右) res33:列表(Int)=(1、2、3、4、5、6、7) scala>左+ +:(右) res34:列表(Int)=(5、6、7、1、2、3、4) scala>离开。:::(右) res35:列表(Int)=(5、6、7、1、2、3、4) scala>左:+ (10) res36:列表(Int)=(1、2、3、4、10) scala>离开。+:(10) res38:列表(Int)=(10, 1、2、3、4) scala>离开。::(10) res39:列表(Int)=(10, 1、2、3、4) 代码>
删除
<代码>下降(n)——→删除列表的前n个元素(首部开始删除) dropRight (n)——→删除列表的后n个元素(尾部开始删除) dropWhile (p:=比;布尔)——→逐个匹配去除符合条件的元素,直到不符合条件,之后的元素不再判断代码>
测试如下:
<代码> scala>val列表=(1、2、3、4、5、6、7) 列表:列表(Int)=(1、2、3、4、5、6、7) scala>list.drop (2) res52:列表(Int)=(3、4、5、6、7) scala>list.dropRight (3) res53:列表(Int)=(1、2、3、4) scala>列表。dropWhile (_ & lt;=3) res54:列表(Int)=(4、5、6、7) scala>列表。dropWhile(_比;3)//第一个元素就不符合条件,后面的不再判断,所以一个也没有删除 res55:列表(Int)=(1、2、3、4、5、6、7) 代码>