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
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
相关文章推荐
- uva 1605 building for UN ——yhx
- ZOJ 3929 Deque and Balls
- 【ZOJ 3929】Deque and Balls(普通dp)
- 使用unittest.TestSuite组织执行用例
- Microsoft Azure Host OS&Guest OS
- Simulating queueing systems with simmer
- HTML标签marquee实现滚动效果
- setAdapter和requestAsyncTask组合使用揭秘
- LeetCode-62&63.Unique Paths
- iOS UITextView 根据输入text自适应高度
- android.database.CursorIndexOutOfBoundsExcept: Index -1 requested, with a size of 1
- iOS UITextView 根据输入text自适应高度
- iOS之谓词(NSPredicate)(正则表达式和UIBarController)
- Cbuilder一定要包含有UnitN.cpp
- 正则表达式、Math类、StringBuffer类和StringBuilder类
- 简述UIActivityIndicatorView的属性和用法
- 方法调用与带标签的continue和break
- uisegmentedcontrol自定
- JSP调试遇到“the requested resource is not available”
- hdu 1242 Rescue(bfs)