美文网首页
2018-11-26 java 面试(集合)

2018-11-26 java 面试(集合)

作者: 鼓励自己前进 | 来源:发表于2018-11-26 09:40 被阅读0次

Java中的几种集合的区别及适用场景

首先大的集合分为:List,Set,Map三种,其中List与Set是继承自Collection,而Map不是。

List与Set的区别:List中的元素有存放顺序,并且可以存放重复元素,检索效率高,插入删除效率低,Set没有存放顺序,而且不可以存放重复元素,后来的元素会把前面重复的元素替换掉,检索效率低,插入删除效率高。(Set存储位置是由它的HashCode码决定的,所以它存储的对象必须有equals()方法,而且Set遍历只能用迭代,因为它没有下标。)

1、最常用的集合:ArrayList

特点:ArrayList集合中元素存储的位置是连续的,所以查询起来会比较快捷,但是执行插入删除操作会比较麻烦一点,会引起其他元素位置的变化。

注意:list中存储的是对象的引用,而不是对象本身。

2、与最常用集合相反的集合:LinkedList

LinkedList与ArrayList是互补的,所以ArrayList的优点就是LinkedList的缺点,ArrayList的缺点就是LinkedList的优点。

特点:LinkedList中元素位置是任意的,所以执行插入删除操作效率较高,查询效率较低。

3、与一般集合都相反的集合:Vector

为什么说它与一般集合都相反呢?因为它是一种老的动态数组,很多方法都用synchonized修饰,所以它是线程安全得,而一般集合是线程不安全得。

特点:多个线程同时访问不会发生不确定的结果,但是它的效率会比较低,如果要考虑线程安全的话可以用它。

4、Set中最常用的集合:HashSet

在用Set集合的时候我几乎用的都是HashSet,HashSet是使用Hash表实现的,集合里面的元素是无序得,可以有null值,但是不能有重复元素。

特点:因为相同的元素具有相同的hashCode,所以不能有重复元素

5、Set中第二常用的集合:TreeSet

TreeSet是用二叉树结构实现的集合

特点:集合中的元素是有顺序得,不允许放入null,同样不能放入重复元素。

6、第二常用的集合:HashMap

经常遇到需要使用键值对存储的场景,而HashMap是用得最多的一种键值对存储的集合。

特点:HashMap允许空键值,并且它是非线程安全的,所以插入、删除和定位元素会比较快。

7、一些不太常用的Map集合:TreeMap,HashTable

TreeMap是基于红黑树实现的,适用于按自然顺序火兹定于顺序遍历key。

HashTable是基于HashCode实现的,但它是线程安全的,所以会比HashMap效率低,而且不允许null值。

相关文章

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

  • Java面试题目录

    垃圾回收 面试题-Java基础-垃圾回收 java垃圾回收 集合 40个Java集合面试问题和答案 Java集合框...

  • Java基础面试总结

    【面试汇总】Java面试题-1Java面试题-2 【集合】Java集合及concurrent并发包总结(转)Jav...

  • 2018-11-26 java 面试(集合)

    Java中的几种集合的区别及适用场景 首先大的集合分为:List,Set,Map三种,其中List与Set是继承自...

  • 面试总结-Java高级篇

    Java面试总结 1.你用过哪些集合类? 大公司最喜欢问的Java集合类面试题 40个Java集合面试问题和答案 ...

  • Java基础汇总

    [ 面试题 ] java基础 面试 | java基础 最近5年133个Java面试问题列表 40个Java集合面试...

  • 【集合框架】

    集合框架(怎么实现、适用场景) hash相关 Java集合框架 Java集合框架综述Java集合框架面试问题集锦 ...

  • Nothing seek,Nothing find

    美图欣赏 Java、Android知识点汇集 Java集合类 ** Java集合相关的博客** java面试相关 ...

  • 那些年我们追过的Java面试之集合类、异常处理

    标签:Java面试、集合类、异常处理 2017/05/09 09:36 三.Java集合类 10.Java集合类框...

  • Collection

    参考地址:Java集合常见面试题集锦Java集合必会14问(精选面试题整理) Java中Collection和Co...

网友评论

      本文标题:2018-11-26 java 面试(集合)

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