Java集合类框架图

Java集合类框架图_第1张图片

   区别:

   Collection:每个位置对应一个元素

        --List:存放有序,允许重复元素,允许元素为null

             --ArrayList:

                 内部结构是数组;

                 初始容量是10;

                 存放有序,元素可以重复也可以为null;

                 插入和删除的移动速度慢;动态扩容1.5倍;

                 线程不安全;

           --LinkedList:

                内部结构是双向链表;

                元素存放有序,允许元素为null,可重复;

                线程不安全;

          --Vector :

                内部结构是数组,与ArrayList及其相似;

                初始容量是10;

                线程安全;

                动态扩容为原来的两倍;

       --Set:不允许重复元素

            --HashSet:

                底层实现是HashMap(),所以不允许重复元素(对应的是key);

                存放无序(根据hash确定索引位置);

                允许元素为null;

           --LinkedHashSet:

                继承HashSet,跟HashSet类似,唯一区别:存放元素有序;

                遍历性能比HashSet好,但插入删除的性能会差点;

                允许元素为null;

          --TreeSet:

                是SortedSet接口的唯一实现类;

                不允许元素重复, 不允许元素为null;

                自动排序元素;

     Map:以Key-Value键值对存在

        --HashMap:

             数据结构是数据和链表实现的。Entry[] table,链表存储来解决hash冲突;

             初始容量:16;

             允许key和value为null,key重复会覆盖;

             存放无序;线程不安全;

       --LinkedHashMap:

             数据结构是双向链表;

             存放元素有序;

             线程不安全

      --TreeMap:

             不允许Key为null, value可以为null;

             元素默认排序(如:字符串->字典);

             线程不安全

你可能感兴趣的:(Java集合类框架图)