List,Set,Map的区别
Posted notwritebug
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List,Set,Map的区别相关的知识,希望对你有一定的参考价值。
这三个是我们初级开发面试必问面试题
1.List接口(有序)
ArrayList:基于数组,增删慢,查找快,线程不安全,应该是开发中最常用到的
LinkedList:基于链表,增删快,查找慢,线程不安全
图中还缺少Vector,也是基于数组,线程安全,效率低。
2.Set接口
HashSet:快速定位一个元素,以HashCode来实现的。集合元素可以是null,但只能放入一个null。
TreeSet:生成一个总是处于排序状态的set,内部以TreeMap来实现,不允许放入null值。
LinkedHashSet:LinkedHashSet集合同样是根据元素的hashCode值来决定元素的存储位置,但是它同时使用链表维护元素的次序。
3.Map接口
HashMap:以哈希表数据结构实现,查找对象时通过哈希函数计算其位置,它是为快速查询而设计的;线程不安全,效率高,允许key-value都为null
HashTable:基本淘汰,线程安全,效率低,不支持null
TreeMap:有序散列表,实现SortedMap接口
以上是关于List,Set,Map的区别的主要内容,如果未能解决你的问题,请参考以下文章