当前位置:   article > 正文

Scala学习笔记(12)—集合(三)—列表List_scala 创建list

scala 创建list

1.不可变列表List

(1) 创建一个List对象

List本身是一个抽象类,不能直接调用其主构造方法来创建对象,而要通过其伴生对象中的apply方法创建

该apply方法接收一个数组,然后调用ArrayBuffer的toList方法将其转换为List
在这里插入图片描述

val list1 = List(23, 65, 87)
println(list1)
  • 1
  • 2

第二种创建List对象的方法,利用Nil创建

val list5 = Nil.::(13)
val list6 = 73 :: 32 :: Nil
val list7 = 17 :: 28 :: 59 :: 16 :: Nil
  • 1
  • 2
  • 3

(2) 访问和遍历List中的元素

不可变List是LinearSeq,是不能按照索引位置直接访问的,这里调用的是LinearSeqOptimized伴生对象的apply方法

直接按位置截取List然后返回新的List的首位置值(这样似乎性能开销有点大)
在这里插入图片描述

//1.访问元素
println(list1(1))
//这里就不能像IndexedSeq一样直接这样修改元素值了
//list1(1) = 12

//2.通过foreach遍历
list1.foreach(println)

//3.添加元素
val list2 = 10 +: list1
val list3 = list1 :+ 23

// 4.合并列表
//将list6作为一个元素添加到list7
val list8 = list6 :: list7
//合并两个列表的元素
val list9 = list6 ::: list7
val list10 = list6 ++ list7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

2.可变列表ListBuffer

(1) 创建一个ListBuffer对象

//可通过构造器直接创建
val list1: ListBuffer[Int] = new ListBuffer[Int]()
//也可通过apply方法创建
val list2 = ListBuffer(12, 53, 75)
  • 1
  • 2
  • 3
  • 4

(2) 添加元素

list1.append(15, 62)
list2.prepend(20)
list1.insert(1, 19, 22)
println(list1)
println(list2)
  • 1
  • 2
  • 3
  • 4
  • 5

(3) 合并list

//创建一个新的list,list1和list2本身不变
val list3 = list1 ++ list2
//list2不变,list1末尾加入list的所有元素
list1 ++= list2
//list1不变,list2开头加入list1的所有元素
list1 ++=: list2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(4) 修改和删除元素

	//修改指定位置元素
    list2(3) = 30
    list2.update(0, 89)
    //删除指定位置元素
    list2.remove(2)
    //删除list中的特定值
    list2 -= 25
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/77345
推荐阅读
相关标签
  

闽ICP备14008679号