面试之JAVA集合篇

1.arraylist与linkedlist的区别 

1、ArrayList的实现是基于数组,LinkedList的实现是基于双向链表。 

2、对于随机访问,ArrayList优于LinkedList 

3、对于插入和删除操作,LinkedList优于ArrayList 

4、LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。 

ArrayList使用一个内置的数组来存储元素,这个数组的起始容量是10,当数组需要增长时,新的容量按如下公式获得:新容量 = 旧容量*1.5 + 1,也就是说每一次容量大概会增长50% 

2.list set 区别 

List: 

        1、可以允许重复的对象。 

        2、可以插入多个null元素。 

        3、是一个有序容器,保持了每个元素的插入顺序,输出的顺序就是插入的顺序。     

        4、常用的实现类有 ArrayList、LinkedList 和 Vector。ArrayList 最为流行,它提供了使用索引的随意访问,而 LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适。 

Set: 

        1、不允许重复对象     

        2、无序容器,你无法保证每个元素的存储顺序,TreeSet通过 Comparator  或者 Comparable 维护了一个排序顺序。 

        3、只允许一个 null 元素 

        4、set接口最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap 实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和 compareTo() 的定义进行排序的有序容器。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,870评论 1 14
  • Java集合类可用于存储数量不等的对象,并可以实现常用的数据结构如栈,队列等,Java集合还可以用于保存具有映射关...
    小徐andorid阅读 5,952评论 0 13
  • 原文地址 Java集合 Java集合框架:是一种工具类,就像是一个容器可以存储任意数量的具有共同属性的对象。 Ja...
    gyl_coder阅读 4,525评论 0 8
  • 四、集合框架 1:String类:字符串(重点) (1)多个字符组成的一个序列,叫字符串。生活中很多数据的描述都采...
    佘大将军阅读 4,132评论 0 2
  • 现在既然高考开始,小黑便讲些高考之事,以免不接世,哈~哈~哈~ 隋唐以前,国家选拔官员一般是世卿世禄、军工制、客卿...
    浪里黑条条阅读 2,905评论 1 0