• 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

    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    java 无符号byte转换
    MySQL分区总结
    eclipse @override注解出错
    git 利用hook 实现服务器自动更新代码
    Centos 安装mysql
    Centos Python3安装共存
    chromedriver 代理设置(账号密码)
    PyQt5整体介绍
    python图片云
    PyPt5 浏览器实例
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14426470.html
Copyright © 2020-2023  润新知