ArrayList 具备非常好的扩容能力,适合于需要频繁增加和删除元素的场景。仓颉0.60.5版本对Arraylist使用有了一些新的修正(也可能之前的版本就修改过了),而如果还是安按照仓颉语言开发指南所说,则要踩一些小坑。以下是几点修改。
一、ArrayList增加元素时,不再使用append改用add
如下面的例子:
import std.collection.*
main():Int64{
var arraylist : ArrayList<String> = ArrayList<String>()
arraylist.add("Apple")
arraylist.add("Banana")
arraylist.add("Cherry")
println(arraylist)
return 0
}
使用append时,显示:'append' is not a member of class 'ArrayList<Struct-String>'
二、增加一段ArrayList时,不是appendAll(arraylist)而是add(all : arraylist), arraylist要换成你想添加的任何ArrayList. 如下:(接上文)
var arrl2 : ArrayList<String> = ArrayList<String>(["Peach, Grape"])
arraylist.add(all: arrl2)
println(arraylist)
三、删除元素时,不是remove(Int), 而是remove(at : Int), 这里Int指元素的位置。插入元素时不用insert, 使用add("sth", at : Int)。 如下:
arraylist.remove(at: 2)
println(arraylist)
arraylist.add("Pineapple",at :1)
println(arraylist)
最后的结果是:
[Apple, Pineapple, Banana, Peach, Grape]