Map、Set、List、Queue、Stack的特点与用法

Map

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

TreeMap可以保证顺序。

HashMap不保证顺序,即为无序的。

Map中可以将Key和Value单独抽取出来,其中KeySet()方法可以将所有的keys抽取正一个Set。而Values()方法可以将map中所有的values抽取成一个集合。

Set

不包含重复元素的集合,set中最多包含一个null元素。

只能用Lterator实现单项遍历,Set中没有同步方法。

List

有序的可重复集合。

可以在任意位置增加删除元素。

用Iterator实现单向遍历,也可用ListIterator实现双向遍历。

Queue

Queue遵从先进先出原则。

使用时尽量避免add()和remove()方法,而是使用offer()来添加元素,使用poll()来移除元素,它的优点是可以通过返回值来判断是否成功。

LinkedList实现了Queue接口。

Queue通常不允许插入null元素。

Stack

Stack遵从后进先出原则。

Stack继承自Vector。

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

用法

如果涉及堆栈,队列等操作,建议使用List。

对于快速插入和删除元素的,建议使用LinkedList。

如果需要快速随机访问元素的,建议使用ArrayList。

点击此处
隐藏目录