首页 > 代码库 > 第11章 持有对象
第11章 持有对象
容器
Treemap是有序的,按照插入的自然序,HashMap是无序的。对于TreeMap HashMap和LinkedHashMap的区别,请看这篇blog《LinkedHashMap TreeMap的区别》。
HashSet TreeSet和LinkedHasSet的区别也相应的Map类似。在此不再赘述。
如果一个类没有显示的生命继承自哪个类,那么它自动继承自Object。
ListIterator
ListIterator是一个更强大的Iterator的子类型,它只能用于各种List类型的访问。ListIterator可以双向移动。它可以使用Set()方法替换它访问过的最后一个元素。还可以通过调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator。
LinkedList
LinkedList还添加了可以使其用作栈,队列或爽端队列的方法。
Stack
“栈”通常指后进先出(LIFO)的容器。LinkedList具有能够直接实现栈的所有功能的方法,因此可以直接将LinkedList作为栈使用。不过,有时一个真正的栈更能把事情说清楚。
Set
Set不保存重复元素。Set具有与Collection完全一样的接口,因此没有任何额外的功能。只是行为不同。(这是继承和多态思想的典型应用:表现不同的行为)
Map
用来存储关联数据的容器。
Queue
队列是典型的先进先出(FIFO)的容器。即从容器的一端进入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序相同。队列常被当作一种可靠的将对象从程序的某个区域传输到另一个区域的途径。队列在并发变成中特别重要。LinkedList提供了方法以支持队列的行为,并且它实现了Queue的接口,因此LinkedList可以看做Queue的一种实现。
PriorityQueue
优先级队列声明下一个弹出元素是最重要的元素。当你在PriorityQueue上调用offer()方法来插入一个对象时,这个对象会在队列中被排序。默认的排序将使用对象在队列中欧你的自然顺序。但是你可以通过提供自己的Comparator来修改这个顺序。
总结:
新程序中不应该使用过时的Vector,HashTable和Stack。
第11章 持有对象