Collection类

Collection不属于Java框架继承树上的内容,它属于单独的分支,Collections是一个包装类,它的作用就是为集合框架提供某些功能实现,此类只包括静态方法操作或者返回collections

1、同步包装

同步包装器将自动同步(线程安全性)添加到任意集合。六个核心接口(CollectionSetListMapSortedSetSortedMap)中的每一个都有一个静态工厂方法。

public static Collections synchronizedCollection(Collection c);

public static Set synchronizedSet(Set s);

public static List synchronizedList(List list);

public static <k,v>Map<k,v> synchronizedMap(Map<k,v> m);

public static SortedSet synchronizedSortedSet(SortedSet s);

public static <k,v> SortedMap<k,v> synchronizedSortedMap(SortedMap<k,v> m);

2、不可修改的包装

不可修改的包装器通过拦截修改集合的操作并抛出UnsupportOperationException,主要用在下面两场景:

构建集合后使用其不可变。在这种情况下最好不要去获取返回collection的引用,这样有利于保证不可变性。

允许某些客户端以只读方式访问数据结构。保留对返回的collection的引用,但分发对包装器的引用。通过这种方式,客户可以查看但不能修改,同时保持安全访问权限。这些方法有:

    public static Collections unmodifiableCollection(Collection c);

    public static Set unmodifiableSet(Set s);

    public static List unmodifiableList(List list);

    public static <k,v>Map<k,v> unmodifiableMap(Map<k,v> m);

    public static SortedSet unmodifiableSortedSet(SortedSet s);

    public static <k,v> SortedMap<k,v> unmodifiableSortedMap(SortedMap<k,v> m);

3、线程安全的Collections

Java1.5并发包(Java.Util.concurrent)提供了线程安全的collections允许遍历的时候进行修改,通过设计iteratorfail-fast并抛出ConcurrentModificationException。一些实现类是CopyOnWriteArrayListConcurrentHashMapCopyOnWriteArraySet

4、Collection  算法

此类包含用于集合框架算法的方法,例如二进制搜索、排序、重排、反向等。

5、集合实现类特征图

集合框架的主要实现类的特征图

集合

排序

随机访问

Key-value存储

重复元素

空元素

线程安全

ArrayList

Y

Y

N

Y

Y

N

LinkedList

Y

N

N

Y

Y

N

HashSet

N

N

N

N

Y

N

Treeset

Y

N

N

N

N

N

HashMap

N

Y

Y

N

Y

N

TreeMap

Y

Y

Y

N

N

N

Vector

Y

Y

N

Y

Y

Y

Hashtable

N

Y

Y

N

N

Y

ConcurrentHashMap

N

Y

Y

N

N

Y

Stack

Y

N

N

Y

Y

Y

CopyOnWriteArrayList

Y

Y

N

Y

Y

Y

欢迎批评指正,提出问题,谢谢!
原文地址:https://www.cnblogs.com/xxeleanor/p/14426470.html