Java Collections Framework中文翻译

Java Collections Framework

集合接口

1.java.util包
Collection:仅仅表示一组对象的集合,而没有指定对象的存放次序,以及能否包含重复元素,Collection接口自身还继承了Iterator接口。

size():返回容器中元素的个数。
isEmpty():返回容器是否为空。
contains():返回容器中是否包含某个元素。
iterator():返回容器的迭代器。
add():向容器中添加元素。
remove():删除容器中的元素。
clear():清空容器中的元素。
toArray():将容器类转成相应的对象数组。

Set:继承于Collection接口,特点是不能存放相同的元素,对有序性没有要求,Set接口中的方法定义基本和Collection接口一致,没有加入新的方法定义。

List: List继承于Collection接口,表示一个有序容器,容器内的元素会按照加入的顺序有序的存放,允许出现重复的元素,可以基于元素位置的访问。

get():获取指定位置的元素。
set():将指定位置设置成指定的元素。
indexOf():获取指定元素在容器中的位置。
listIterator():返回ListIterator类型的迭代器。
subList():根据区间位置,获取容器的子容器 。

Queue:继承于Collection接口,是一个被定义用来存放一系列等待进行某个过程元素的容器,除了一些基本的容器操作,Queue队列还提供了一些额外的插入、提取和检查的操作。

add():在不违反容量限制的情况下,将指定的元素插入此队列。
在成功时返回true,如果当前没有可用的空间,则抛出IllegalStateException。
offer():在不违反容量限制的情况下,将指定的元素插入此队列。
当使用有容量限制的队列时,此方法通常要优于add(E),后者可能无法插入元素,而只是抛出一个异常。
remove():获取并移除此队列的头。
pool():获取并移除此队列的头。如果此队列为空,则返回null。
element():获取但不移除此队列的头。
peek():获取但不移除此队列的头。如果此队列为空,则返回null。

Deque:继承于Queue接口,在JDK1.6中被加入,也叫做双端队列,即可以在队列的两端进行插入和提取操作。

addFirst()/addLast():在不违反容量限制的情况下,将指定的元素插入此队列的头/尾。
在成功时返回true,如果当前没有可用的空间,则抛出IllegalStateException。
offerFirst()/offerLast():在不违反容量限制的情况下,将指定的元素插入此队列的头/尾。
当使用有容量限制的队列时,此方法通常要优于add(E),后者可能无法插入元素,而只是抛出一个异常。
removeFirst()/removeLast():获取并移除此队列的头/尾。
pollFirst()/pollLast():获取并移除此队列的头/尾。如果此队列为空,则返回null。
getFirst()/getLast():获取但不移除此队列的头/尾。
peekFirst()/peekLast():获取但不移除此队列的头/尾。如果此队列为空,则返回null。

Map:是一个关于key(键)和value(值)的映射集合,每一个key对应一个value。

size():返回容器中元素的个数。
put():向容器中加入元素。
remove():删除容器中元素。
isEmpty():判断容器是否为空。
contains():判断容器是否包含指定元素。
clear():清除容器中的元素。
keySet():返回Map的key集合,是Set类型的。

SortedSet:扩展Set接口,一组其元素自动排序的集合,使用自然顺序或创建SortedSet实例时提供Comparator对象。
SortedMap:扩展Map接口,一组根据key值自动排序的映射,使用自然顺序或创建SortedMap实例时提供Comparator对象。
NavigableSet:扩展SortedSet接口,具有了为给定搜索目标报告最接近匹配项的导航方法。可以按升序或降序访问和遍历NavigableSet。
NavigableMap:扩展SortedMap接口,具有了为给定搜索目标报告最接近匹配项的导航方法。可以按升序或降序访问和遍历NavigableMap。

2.java.util.concurrent包
BlockingQueue:扩展Queue接口,当生产者向队列添加元素但队列已满时,生产者会被阻塞;当消费者从队列移除元素但队列为空时,消费者会被阻塞。
TransferQueue:扩展BlockingQueue接口,生产者会一直阻塞直到所添加到队列的元素被某一个消费者所消费。
BlockingDeque:扩展BlockingQueue和Deque接口,当生产者向队列添加元素但队列已满时,生产者会被阻塞;当消费者从队列移除元素但队列为空时,消费者会被阻塞。
ConcurrentMap:扩展Map接口,具有原子操作的putIfAbsent,remove和replace方法。
ConcurrentNavigableMap:扩展ConcurrentMap和NavigableMap接口。

通用目的实现类

HashSet:基于Set接口的Hash表的实现,比较全面的实现了Set接口。元素在容器的中的顺序是无序的,底层是基于HashMap的实现,key表示set容器中的值,value都是一个相同的对象。
TreeSet:基于红黑树实现,继承于NavigableSet接口,NavigableSet也就是SortedSet的扩展,具有了为给定搜索目标报告最接近匹配项的导航方法。
LinkedHashSet:继承与HashSet类,实现了Set接口,具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,即按照将元素插入到set中的顺序(插入顺序(进行迭代。
ArrayList:实现了List接口,底层基于数组实现,对元素的随机访问速度较快,但是插入和删除操作速度较慢。
ArrayDeque:实现了Deque,是Deque接口一个非常高效的基于数组的实现。
LinkedList:实现了List接口和Deque接口,底层是双重链表实现,对于元素的插入和删除操作较快,但是随机访问的性能较差。当通过队列使用时,LinkedList表现为一个FIFO队列。
PriorityQueue:是一个基于优先级堆的无界优先级队列。
HashMap:基于哈希表的Map接口的实现,允许使用NULL值和key,除了非同步和可以使用null之外,和HashTable大致相同。
TreeMap:基于红黑树的NavigableMap实现,其中的映射根据其键的自然顺序或者创建的时候提供的Comparator进行排序。
LinkedHashMap: Map接口的哈希表和链表实现,具有可预期的迭代顺序。

包装实现类

Collections.unmodifiableInterface:返回指定Interface类型的容器,但是不允许用户去修改它们。相当于原来容器的一个不能修改的视图。
Collections.synchronizedInterface:返回指定interface类型的容器,但是是线程安全的。
Collections.checkedInterface:返回指定 interface 的一个动态类型安全视图。试图插入一个错误类型的元素将导致立即抛出ClassCastException。

适配器实现类

newSetFromMap(Map)
asLifoQueue(Deque)

便捷实现类

Arrays.asList:将数组转换为列表。
emptySet, emptyList, emptyMap:返回一个不可变的空的set, list, map。
singleton, singletonList, singletonMap:返回一个不可变的单个的set, list, map,只包含指定对象(或键值映射)。
nCopies:返回一个包含N个指定对象拷贝的不可变列表。

遗留实现类

Vector:实现了一个动态数组,支持同步访问,并包含了许多传统的方法(这些方法不属于集合框架)。
Hashtable:实现了Map接口的哈希表,支持同步访问,并包含了许多传统的方法(这些方法不属于集合框架)。

特殊目的实现类

WeakHashMap:以弱键实现的基于哈希表的Map。在WeakHashMap中,当某个键不再正常使用时,将自动移除其条目。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。丢弃某个键时,其条目从映射中有效地移除,因此,该类的行为与其他的Map 实现有所不同。
IdentityHashMap:此类利用哈希表实现Map接口,比较键(和值)时使用引用相等性代替对象相等性。换句话说,在IdentityHashMap中,当且仅当(k1==k2)时,才认为两个键k1和k2相等。
CopyOnWriteArrayList: ArrayList的一个线程安全的变体,其中所有可变操作(add、set等等)都是通过对底层数组进行一次新的复制来实现的,一般需要很大的开销。
CopyOnWriteArraySet:内部使用CopyOnWriteArrayList的Set。
EnumSet:与枚举类型一起使用的专用的Set实现。枚举set中所有键都必须来自单个枚举类型,该枚举类型在创建set时显式或隐式地指定。
EnumMap:与枚举类型一起使用的专用的Map实现。枚举映射中所有键都必须来自单个枚举类型,该枚举类型在创建映射时显式或隐式地指定。枚举映射在内部表示为数组。此表示形式非常紧凑且高效。

并发实现类

ConcurrentLinkedQueue:一个基于链接节点的无界FIFO队列。
LinkedBlockingQueue:一个基于链接节点的可选界限的FIFO阻塞队列。
ArrayBlockingQueue:一个基于数组的有界的FIFO阻塞队列。
PriorityBlockingQueue:一个基于优先级堆的无界阻塞优先级队列。
DelayQueue:一个基于优先级堆的时间调度队列。
SynchronousQueue:一个使用BlockingQueue接口的简单集合机制。
LinkedBlockingDeque:一个基于链接节点的可选界限的FIFO阻塞双端队列。
LinkedTransferQueue:一个基于链接节点的无界的TransferQueue。
ConcurrentHashMap:基于哈希表的高并发高性能的ConcurrentMap。
ConcurrentSkipListSet
ConcurrentSkipListMap

抽象实现类

AbstractCollection
AbstractSet
AbstractList
AbstractSequentialList
AbstractQueue
AbstractMap

算法

Collections类的静态方法:
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 distance):通过指定距离旋转列表中的元素。
replaceAll(List list, Object oldVal, Object newVal):使用newVal替换list中所有oldVal。
indexOfSubList(List source, List target):返回第一个匹配指定list的索引值。
lastIndexOfSubList(List source, List target):返回最后一个匹配指定list的索引值。
swap(List, int, int):交换列表中指定的位置的元素。
frequency(Collection, Object):计数指定元素在集合中出现的次数。
disjoint(Collection, Collection):确定两个集合是否是不相交的,即没有相同元素。
addAll(Collection

基础架构

1.Iterators
Iterator
ListIterator

2.Ordering
Comparable
Comparator

3.Runtime exceptions
UnsupportedOperationException
ConcurrentModificationException

4.Performance
RandomAccess

数组工具

Arrays:包含静态方法来进行排序(sort),搜索(search),比较(compare),哈希(hash),复制(copy),调整大小(resize),转换为字符串(convert to String)和填充基元和对象的数组(fill arrays of primitives and objects)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值