2020-08-05

List,Set,Map的区别:

1.List和Set接口均继承自Collection接口,而HashMap属于Key-Value映射键值对。
2.List是有序可重复,常用的实现类有:ArrayList,LinkedList,Stack,Vector;
ArrayList底层是由动态属于实现的,查询速度快,增删速度慢;
ArrayList中有3个构造方法:
a.无参构造方法,默认为初始容量为10的空列表,
b.包含Collection指定元素参数的列表;
c.指定初始容量参数的空列表;
在得知需要存储多少对象的情况下,利用创建确定初始容量参数的构造方法创建对象,以便在程序运行时扩容防止性能降低!
LinkedList底层由链表原理,首尾删速度快,查询速度慢;
LinkedList中有两个构造方法:a.无参构造方法,b.指定Collection中元素的参数列表;
Vector原理与ArrayList一样,但是Vector是线程安全的,而Stack栈继承自Vector,先进后出;
3.Set是无序不可重复,常用的实现类有:HastSet,LinkedHashSet,TreeSet…
HashSet底层是由hash表支持(实际上是一个HashMap实例),它不保证Set的迭代顺序,此类允许使用null元素,也是非线程安全,
此类有四个构造方法a.构造一个新的空set,底层HashMap,实例的默认初始容量是16,加载因子是0.75,
b.构造一个包含指定Collection中的元素的新set。
c.构造一个新的空set,指定初始容量和默认加载因子0.75
d.构造一个新的空set,其底层HashMap实例具有指定的初始容量和指定的加载因子!
LinkedHashSetMap底层接口的哈希表和链接列表实现,
此类有四个构造器:
a.默认初始容量16和加载因子0.75,
b.指定初始容量和默认加载因子0.75,
c.指定初始容量,加载因子和排序模式的空LinkedHashMap实例,
d.映射一个映射关系与指定相同的插入顺序LinkedHashMap实例!
4.Map中常用的实现类:HashMap,Hashtable,ConcurrentHashMap…
HashMap底层是由数组+链表+红黑树实现,非线程安全,速度快,
允许key和value为null值
此类有四个构造方法:
a.有默认初始容量16和加载因子0.75的无参构造,
b.有指定容量和加载因子0.75的带参构造
c.指定初始容量和加载因子的带参构造
d.构造一个映射关系与指定Map相同的新HashMap
Hashtable线程安全,速度慢,此类有四个构造方法:
a.默认初始容量11加载因子0.75
b.指定初始容量和默认加载因子0.75的有参构造
c.指定初始容量和指定加载因子的有2个参数的构造
d.构造具有给定Map相同映射关系的新哈希表
ConcurrentHashMap线程安全,速度比hashtable快,优先选择,采用分段锁技术

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值