Java集合类:map、set、list、queue、stack的特点与用法

153 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天,点击查看活动详情

Map

Map是键值对,键Key是唯- -不能重复的,一个键对应一个值,值可以重复。

TreeMap可以保证顺序,HashMap不保证顺序,即为无序的,Map 中可以将Key和Value单独抽取出来,其中KeySet ()方法可以将所有的keys抽取成-一个 Set,而Values ()方法可以将map中所有的values抽取成-一个集合。

Set

不包含重复元素的集合,set 中最多包含一个null元素,没有带索引的发方法,不能用普通for循环遍历,只能用Iterator实现单项遍历,Set中没有同步方法。

List

list是有序的可重复集合,可以在任意位置增加删除元素,用Iterator实现单向遍历,也可用ListIterator实现双向遍历。

Queue

Queue遵从先进先出原则,使用时尽量避免add()和remove()方法,而是使用offer()来添加元素,使用pol1()来移除元素,它的优点是可以通过返回值来判断是否成功,LinkedList实现了Queue接口,Queue通常不允许插入null元素。

Stack

Stack遵从后进先出原则,Stack 继承自Vector,它通过五个操作对类Vector进行扩展,允许将向量视为堆栈,它提供了通常的push和pop操作,以及取堆栈顶点的peek()方法、测试堆栈是否为空的empty方法等。

用法

如果涉及堆栈,队列等操作,建议使用List。 对于快速插入和删除元素的,建议使用LinkedList。 如果需要快速随机访问元素的,建议使用ArrayList。允许将向量视为堆栈,它提供了通常的push和pop操作,以及取堆栈顶点的peek()方法、测试堆栈是否为空的empty方法等。 用法 如果涉及堆栈,队列等操作,建议使用List。 对于快速插入和删除元素的,建议使用LinkedList。 如果需要快速随机访问元素的,建议使用ArrayList。