集合框架介绍
在Java语言中,Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。所有抽象出来的数据结构和操作(算法)统称为Java集合框架(JavaCollectionFramework)。
Java集合框架的好处主要有一下几点:
- 降低程序员工作量。话外音:该有的数据结构和算法框架已经实现了,不用自己写了,直接用就可以了;
- 提供了高性能的数据结构和算法实现,从而提高了性能。话外音:你们自己写的话有可能性能比较垃圾,我写好了高性能实现给你们用;
- 减少了学习API的工作量。话外音:我把这些集合的API给抽象处理来,你们只要学习少量的通用API就行了,你就偷着乐吧;
- 减少了设计和实现API的工作量。话外音:该做的我都给你们做了。
综上所述,Java程序员在具体应用时,不必考虑数据结构和算法实现细节,只需要用这些类创建出来一些对象,使用集合提供的API就能工作的很好了,这样就大大提高了编程效率。
集合框架结构图
再上一张简单点的
集合框架的组成
集合框架主要由以下几部分组成:
-
集合接口
表示不同类型的集合,例如List
,Set
以及Map
。这些接口构成了框架的基础。- Collection
- Set
- List
- Queue
- Deque
- Map
- SortedSet
- SortedMap
- NavigableSet
- NavigableMap
- BlockingQueue
- TransferQueue
- BlockingDeque
- ConcurrentMap
- ConcurrentNavigableMap
-
通用实现
集合接口的通用实现。- HashSet
- TreeSet
- LinkedHashSet
- ArrayList
- ArrayDeque
- LinkedList
- PriorityQueue
- HashMap
- TreeMap
- LinkedHashMap
-
包装器实现
为某些实现提供了额外的功能,比如同步。- Collections.unmodifiableInterface
- Collections.synchronizedInterface
- Collections.checkInterface
-
适配器实现
- newSetFromMap(map)
- asLifoQueue(Deque)
-
便利的实现
集合接口的高性能迷你实现。- Arrays.asList
- emptyList, emptySet, emptyMap
- singleton, singletonList, singletonMap
- nCopys
-
遗留实现
早期版本的集合类,包括Vector
和Hashtable
。- Vector
- Hashtable
-
特殊功能实现
- WeakHashMap
- IdentityHashMap
- CopyOnWriteArrayList
- CopyOnWriteArraySet
- EnumSet
- EnumMap
-
支持并发的实现
专门为高并发设计的实现。- ConcurrentLinkedQueue
- LinkedBlockingQueue
- ArrayBlockingQueue
- PriorityBlockingQueue
- DelayQueue
- SynchronousQueue
- LinkedBlockingDeque
- LinkedTransferQueue
- ConcurrentHashMap
- ConcurrentSkipListSet
- ConcurrentSkipListMap
-
抽象实现
集合接口的部分实现以方便自定义实现。- AbstractCollection
- AbstractSet
- AbstractList
- AbstractSequentialList
- AbstractQueue
- AbstractMap
-
算法
集合里的静态方法。- sort(List)
- binarySearch(List, Object)
- reverse(List)
- shuffle(List)
- fill(List, Object)
- copy(List dest, List src)
- min(Collection)
- max(collection)
- rotate(List list, int distanse)
- replaceAll(List list, Object oldVal, Object newVal)
- indexOfSubList(List source, List target)
- lastIndexOfSubList(List source, List target)
- swap(List, int, int)
- frequency(Collection, Object)
- disjoint(Collection, Collection)
- addAll(Collection<? super T>, T...)
-
基础设施
为集合接口提供必要支持的接口。- Iterators
- Iterator
- ListIterator
- Ordering
- Comparable
- Comparator
- Runtime exceptions
- UnSupportedOperationException
- ConcurrentModificationException
- Performance
- RandomAccess
- Iterators
-
数组工具
为数组提供的工具函数。- Arrays
网友评论