Scala集合 - List

水善利万物而不争,处众人之所恶,故几于道

目录

一、不可变List

  1. 创建List

  2. 取指定的数据

  3. 向List中添加元素

  4. 遍历List

  5. 集合间合并 - 扁平化处理

二、可变List

  1. 创建可变集合对象

  2. 添加元素

  3. 修改元素

  4. 删除元素

一、不可变List

1. 创建List

val list:List[Int] = List(1,2,3,4,3)

  创建一个List,数据有序,可重复,因为List是seq下面的

  这种方式创建List是通过apply方法创建对象,因为List是个抽象类,不能通过new的方式创建对象

2. 取指定的数据

println(list(1))

  取出List中下标为1的数据

3. 向List中添加元素

var list1:List[Int] = list.:+(5)

  将元素5添加到List末尾


var list2:List[Int] = list.+:(6)

  将元素6添加到List头部


val NilList:List[Int] = Nil.::(1)

  Nil是List的一个空对象。将1添加到List中,此时List中只有一个元素1

val NilList2:List[Int] = 11 :: 22 :: 33 :: Nil

  将11,22,33添加到空List中。

  运算符中有冒号,且冒号在右边,运算顺序从右向左,::是列表里面的方法,不是Int里面的方法,所以Nil::11会报错


val list3 = List(4, 5, 6, 7)
val list4 = List(1, 2)
val list5: List[Any] = list3 :: list4
println(list5)  // 直接能输出list,是因为list重写了toString方法
结果:
List(List(4, 5, 6, 7), 1, 2)

  运算顺序是从右到左,将list3加入到list4里面,是把list3整体这个List加入到list4里面


4. 遍历List

list.foreach(println)

for (elem <- list) {
      println(elem)
}

......
和遍历数组差不多

5. 集合间合并

  扁平化处理:将一个整体拆成一个一个的个体

val list3 = List(4, 5, 6, 7)
val list4 = List(1, 2)
val list6: List[Int] = list3 ::: list4
println(list6)
结果:
List(4, 5, 6, 7, 1, 2)

二、可变List

1. 创建可变集合对象

val list: ListBuffer[Int] = new ListBuffer[Int]()

  点进去看,发现ListBuffer是个类,可以直接new对象


val list: ListBuffer[Int] = ListBuffer(1, 2, 3)

  通过伴生对象的apply方法创建对象

2. 添加元素

建议:可变用方法,不可变用符号

list.append(99,98)
list.insert(0,88,77)

  append向集合中追加元素,可以一次添加多个
  insert向指定的位置插入元素,可以插入多个,从插入位置顺序插入

3. 修改元素

list(0) = 8
list.update(1,11)

  通过索引修改
  通过update方法修改指定位置的元素

4. 删除元素

list.remove(0)
list.remove(0,3)

  删除下标位置为0的元素
  从下标为0的位置开始删除,删除3个元素

你可能感兴趣的:(Scala,scala,list,开发语言,可变List和不可变List)