Java集合类框架图

作者: yuanfy | 来源:发表于2017-02-25 00:29 被阅读230次

       区别:

       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集合类框架图

        本文链接:https://www.haomeiwen.com/subject/hisbwttx.html