Java.util集合框架笔记
0. Collection 接口
所有的集合都实现了此接口,可以用它里面的众多有用的方法,可自查JDK文档
1. ArrayList类
2. LinkedList 类
3. HashSet 类
HashSet (int capacity , float fillRatio) //容量和填充率
4. Queue 接口
最常用的出队和入队操作为: 出队: poll( ) 入队: offer( ) (队列长度固定,若满则返回false)
获得删除元素 : poll( ) , remove( )
如果队列为空,则分别返回 null 和 抛出异常
从队头获得但不能删除元素的方法为: peek( ) , element( )
如果队列为空,则分别返回 null 和 抛出异常
5. LinkedHashSet 类扩展自HashSet
以元素插入的顺序来维护集合的链表.
6. TreeSet 类
树结构,根据元素的正常升序排列的树集合
7. PriorityQueue 类
From J2SE 5.0
基于序列的比较函数创建一个序列,
如: PriorityQueue(int capacity, Comparator<? Extends E> c)
默认是升序排列
8. EnumSet 类
From J2SE 5.0
专用于enum类型的Set
9. ListIterator 接口
扩展自Iterator , 可双向遍历元素及元素的修改,它只对实现List接口的集合有效.
注意Iterator 接口不可双向遍历,它只定义了三个方法:
hasNext() next()
remove() 从迭代器指向的集合中移除迭代器返回的最后一个元素(可选操作)。
10. RandomAcdess 接口
标签接口,以表明可以类似哈希值似的随机访问里面的某一值,而时间复杂度一样,因为一般经过散列算法了.
11. SortedMap 接口
它确保以键的升序方式保存键值对.
12. Map.Entry 接口
Map接口声明的entrySet()方法返回的是包含所有映射键值对的集合,每一个集合元素就是一个Map.Entry 对象. 声明如下: interface Map.Entry<K,V>
13. HashMap 类
14. TreeMap 类
使用树结构来实现Map接口.可以以排序的方式存储键值对,并且允许快速查找.
树映射保证了它的元素以键的升序存储.
15. LinkedHashMap 类
以元素的插入顺序维护一个映射中元素的链表.
16. EnumMap 类
From J2SE 5.0 , 专用于enum类型的键.
17. Collections 类
集合框架定义了可用于集合和映射的算法,这些算法定义为Collections 类中的静态方法.
这些方法非常有用,可自查帮助文档.
18. Arrays 类
此类提供了在处理数组时很有用的方法,它们有利于连接集合和数组. 可自查帮助文档.
遗留的类和接口
没有集合类是同步的,但所有的遗留类是同步的,如Hashtable与HashMap近似,但Hashtable是同步的.
Properties类是Hashtable类的子类,用来存取key和 value 都是字符串的列表.
1. Enumeration 接口
定义了两个方法: Boolean hasMoreElements() , Object nextElement()
2. Vector 类
向量,实现一个动态数组,与ArrayList相似,但它是同步的,并且有很多不是集合框架的遗留方法.现与集合已充分兼容.因为它现在实现了List接口,所以可以像使用一个ArrayList实例一样使用向量.
3. Stack 类
它是Vector的子类,重要方法: pop() , push() , peek() (返回栈顶元素但不删除)
4. Dictionary 抽象类
表示键/值对存储库的抽象类,操作与映射相似,可以被认为是一个键/值对的列表.
此类过时,被Map 取代.
5. Hashtable 类
Hashtable与HashMap近似,但Hashtable是同步的.
6. Properties 类
Properties类是Hashtable类的子类,用来存取key和 value 都是字符串的列表.
使用方法参见CodeLibrary里的实例.
以上参考来自<<J2SE 5.0 参考大全>>,基本上是要用好几个重要的类就可以了.