集合框架
概述:如果熟悉C++ STL 的朋友肯定会发现 Java 的集合类库设计思路与STL的思路有很多相同之处,如泛型算法、迭代器等。Java为所有集合类设计了一些通用的接口,去操作所有实现集合类。
Java集合类库公共接口:
1. Iterator<E> iterator()
2. int size()
3. boolean isEmpty()
4. boolean contains(Object obj)
5. boolean containsAll(Collection<?> other)
6. boolean add(Object element)
7. boolean addAll(Collection<? extends E> other)
8. boolean remove(Object obj)
9. boolean removeAll(Collection<?> other)
10. void clear()
11. boolean retainAll(Collection<?> other)
12. Object[] toArray()
纵观一下集合框架和一般数据结构一样,都提供了对这个数据结构的增、删、改、查、迭代操作。
Java集合类库实现:
(1) ArrayList
(2) LinkedList(java的链表是双向链表)
(3) HashSet
(4) TReeSet
(5) EnumSet
(6) LinkedHashSet
(7) PriorityQueue
(8) HashMap
(9) treeMap
(10)EnumMap
(11)LinkedHashMap(链状散列表:链表与散列表的复合结构,主要为了散列表排序)
(12)WeakHashMap(弱散列表)
(13)IdentityHashMap(标识散列表-它的键值是对象内存地址)
纵观一下Java集合框架的实现,和所有优秀的集合类库一样,都提供了对基本数据结构,数组、链表、队列、散列集、散列表、树列集、树列表的支持。
Java集合框架:
Java旧集合类库
Java的包装器和视图
java为了让一些集合类,拥有另外一种特性,为这些集合设计了包装器和视图,如为了以线程安全的方式去访问不安全的集合对象;为了以数组下标的方式去方法链表元素等。表面上看上去另外某些数据结构了特性,其实内部操作却是以另外一种方式去处理的。也许java是想提供一种接口的操作方式。
集合类库算法
java这种思想源于C++,类库框架先定义一种接口去描述某些操作,具体算法采取可装配的方式去处理。如类库的查找与排序等算法,当前java已经为你提供了很多优秀的算法,你也可以装配自己的算法去实现排序,查找。