JAVA 集合--总结篇

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012442381/article/details/80028112

Java集合的作用不必多说大家都知道,下面通过思维导图梳理他们的关系

JAVA 集合分类

JAVA集合主要分为两大接口,四大体系
这里写图片描述

JAVA集合的比较

  1. List实现类比较
    (1) ArrayList 与LinkedList
    ArrayList : 数组类型的集合,查询(使用get与set方法)快,增删慢(需要移动数据)
    LinkedList: 链表类型的集合,查询(使用get与set方法)慢,增删快(查询需要移动指针)
    (2) ArrayList 与Vector
    Vector 与ArrayList基本相似,唯一区别是Vector 是线程同步的即线程安全

  2. Set实现类比较
    HashSet 与TreeSet
    HashSet:查速度最快的集合因为底层是hashcode实现
    TreeSet :生成一个排序的集合,底层是TreeMap实现,按自然排序或者提供的comparator排序

  3. Map实现类比较
    HashMap 与hashtable
    HashMap: 线程不安全,允许null值null键
    Hashtable: 线程安全,不允许null值null键

JAVA集合工具类

  1. Collections 工具类
    该类提供了很多操作集合的静态方法,特别是强同步synchronized 可以保证线程安全,只读强控等

  2. Arrays 工具类
    该类是操作数组的工具类,对集合只要知道这个

    // 源代码
    @SafeVarargs
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

    // 测试
        //特别强调基本类型一定要转换为原始类
    Integer [] arr =  {111, 222};
    List  list = Arrays.asList(arr);
        // 或者
    List  list2 = Arrays.asList({111, 222});

   // 且list集合定长不可以删和增加操作

补充点

集合的整体体类图(摘自博客)

猜你喜欢

转载自blog.csdn.net/u012442381/article/details/80028112