scala教程:ListBuffer-可变List

介绍

scala 中的 ListBuffer 类似 java中的 ArrayList

定义语法

方式一

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

解释:

  • [Int]:相当于java中的泛型,可以存放的 Int类型,当前数组中的初始值是0

含义: 创建一个 ListBuffer,没有元素

方式二

通过伴生对象创建:

val lb2: ListBuffer[Int] = ListBuffer[Int](100, 200, 300)

含义: 创建一个 ListBuffer,元素是:100、200、300

转成字符串 mkString()

使用 mkString() 方法,可以将 元素拼接成一个字符串,并可指定元素的 分隔符

println(lb2.mkString(","))

执行结果:

100,200,300

索引

相当于 编号 ,ListBuffer 中的每一个元素,都会有一个编号,从0开始

注意: 索引从 0 开始

访问元素

通过索引访问,索引从 0 开始,也就是说索引是0,表示List中的第1个元素

语法

变量名(索引)

注意: 与C、JAVA不同,scala用的是小括号 ()

例子

println("lb2(1):"+lb2(1))

数组越界

如果当前数组只有5个元素,但访问第6个元素,就会报错,错误是 数组越界

即:访问不存在的元素,如下:

println(lb(10))

就会报 数组越界,如下

java.lang.ArrayIndexOutOfBoundsException: 10

修改元素的值

lb2(0) = 120

长度属性

通过 .length、.size 方法获取长度(元素的个数),返回 Int类型

println("长度:"+list.size)
println("长度:"+list.length)

在尾部追加元素

语法一

listBuffer名.append(元素1, ...)

提示:可添加多个元素

例子
lb2.append(500,600)
println("lb2:"+lb2)

语法二

.+=() 表示在尾部追加

listBuffer名.+=(元素,...)
例子
lb2.+=(500,600)
println("lb2:"+lb2)

语法三

语法二的省略写法:

listBuffer名 += 元素

注意:每次只能在尾部追加一个元素

解释:

第一步:因为 在scala中,调用对象的方法可以省略 .,如下:

listBuffer名 +=(元素)

第二步:如果参数 只有一个,那么 () 也可以省略

可以实现连加

listBuffer名 += 元素1 += 元素2
例子
lb2 += 500 += 600
println("lb2:"+lb2)

在头部插入元素

语法一

listBuffer名.prepend(元素1, ...)

提示:可添加多个元素

例子
lb2.prepend(-100,-200)
println("lb2:"+lb2)

语法二

.+=:() 表示在头部插入

listBuffer名.+=:(元素)

注意:只能插入一个元素

例子
lb2.+=:(-100)
println("lb2:"+lb2)

语法三

注意: 添加的元素 在前,数组名 在后。顺序不能颠倒,否则报错

元素 +=: listBuffer名

可以实现连加:

元素1 +=: 元素2 +=: listBuffer名
例子
-100 +=: -200 +=:  lb2
println("lb2:"+lb2)

指定插入位置

listBuffer名.insert(索引,元素, ...)

例子

插入元素,索引是 2 的元素是 1000,下一个元素是 2000

lb2.insert(2,1000,2000)
println("lb2:"+lb2)

原文出处:/show_1IX4PDaa5iJQ.html