java面试2:总结

1.集合容器map、set、list的实现类、区别以及底层的数据结构

      集合是用来存储引用类型的容器(集合只能存储引用类型的数据,不能存储基本类型的数据)。

     <1> 结构特点:List和Set是存储蛋类数据的集合,Map是存储键值对这样的双列数据的集合;

     <2> List中存储的数据是有顺序的,并且值允许重复的;

            Set中存储的数据是无顺序的,并且值不允许重复,但是元素位置是固定的(元素位置是有元素的hashcode来实现的)

            Map中的存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的

     <3> 实现类:

            List:LinkedList 基于链表实现的,链表内存是散列的,增删快,查找慢

                     ArrayList 基于数组实现的,非线程安全,效率高,增删慢,查找快

                     Vector 基于数组实现的,线程安全,效率低,增删慢,查找慢

           Map:HashMap 基于hash表实现Map接口,非线程安全,高效,允许键或值为null

                   HashTable 线程安全,低效,不允许有null的键值

           Set:HashSet 底层是由HashMap实现,不允许集合中有重复的值,使用该方式时,需要重写equals()和hashCode()方法

                    LinkedHashSet  继承HashSet,底层使用的是LinkedHashMap

       <4> 区别:

             List集合中对象,按照索引位置排序,可以有重复对象,允许按照对象在集合中的索引位置检索对象

             Map 中的每一个元素包含一个键和一个值成对出现,键对象不可以重复,值对象可以重复;

             Set集合中的对象不按照特定的方式排序,并且没有重复对象,但它的实现类能对集合中的对象按照特定的方式排序。

发布了9 篇原创文章 · 获赞 0 · 访问量 3678

猜你喜欢

转载自blog.csdn.net/yibuyiyao113/article/details/102734960