您的位置:首页 > 产品设计 > UI/UE

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

2016-04-11 23:54 459 查看
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

参考资料:http://blog.csdn.net/Amazing7/article/details/51119893
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: