cangjie仓颉程序设计-数据结构(四)
文章目录
- ArrayList
- LinkedList
- HashSet
- HashMap
- TreeMap
本专栏还在持续更新: Cangjie仓颉程序设计-个人总结
这是双子专栏: 仓颉编程cangjie刷题录
这些数据结构都在std.collection.*中。暂时官方包还没有stack, queue等数据结构。服了
import std.collection.*
ArrayList
在数据定义时,可以只指定大小而不必初始化。
建立与常用操作
let a = ArrayList<String>()
let b = ArrayList<String>(100) // 100个元素
let c = ArrayList<Int64>([0, 1, 2])
let d = ArrayList<Int64>(c)
let e = ArrayList<String>(2, {x: Int64 => x.toString()})
var arr = ArrayList<Int>([0, 1, 2, 3])
arr.append(520)
arr.remove(arr.size - 1)
arr.insert(0, 999)
arr.reverse()
var array = arr.toArray()
LinkedList
同ArrayList
HashSet
在数据定义时,可以只指定大小而不必初始化。
let a = HashSet<String>()
let b = HashSet<String>(100) // 100个元素
let c = HashSet<Int64>([0, 1, 2])
let e = HashSet<Int64>(10, {x: Int64 => (x * x)})
c.contains(1) // true
c.put(3)
c.remove(1)
HashMap
let a = HashMap<String, Int64>()
let b = HashMap<String, Int64>([("a", 0), ("b", 1), ("c", 2)])
let c = HashMap<String, Int64>(b)
let d = HashMap<String, Int64>(10)
let e = HashMap<Int64, Int64>(10, {x: Int64 => (x, x * x)})
var map = HashMap<Int, Int>([(1, 1), (2, 4), (3, 9)])
for ((k,v) in map) { println("${k} ${v}") }
map[4] = 16
map.put(5, 25)
map.contains(6)
map.remove(5)
var keys = map.keys()
var values = map.values()
TreeMap
使用同HashMap。
但是内容有序