介绍
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)