java 集合
Last updated
Was this helpful?
Last updated
Was this helpful?
java 集合有两个基本接口:
Collection
Map
队列(queue)这种数据结构的实现方式:
循环数组:比链表更高效,支持快速的随机访问,但它是一个有界集合,容量有限。
链表:不支持快速的随机访问,随机访问很慢。如果要查看链表中的第 n 个元素,就必 须从头开始,越过 n-1 个元素,没有捷径可走。
知道某些关键信息,需要查找与之关联的元素,映射(map)数据结构就是为此设计: 映射用来存放键值对,提供键,就能查到值。
java 中 Queue (队列)接口特点:
可在尾部添加元素,头部删除元素
可查找队列中元素的个数
先进先出方式检索对象
java 中 Deque (双端队列)接口特点:
可在尾部和头部添加或删除元素
不支持在队列中间添加元素
java 中 PriorityQueue (优先队列)接口特点:
按照任意顺序插入,但会按照有序顺序检索
ArrayDeque 类的实现用的是循环数组队列, LinkedList 类的实现使用的是链表, 它们都实现了 Deque 接口。
java 集合类库中的迭代器不同于其他语言,传统集合类库迭代器是根据数组索引建模,可 以使用索引 i 直接找到元素 a[i],java 迭代器查找一个元素的唯一方法是调用 next,可 以认为 java 迭代器位于两个元素之间,当调用 next 时,迭代器就越过下一个元素,并返 回刚刚越过的那个元素的引用。
Collection 接口声明了很多有用的方法,所有的实现类都必须提供这些方法。例如:
isEmpty()
contains()
containsAll()
equals()
addAll()
remove()