JAVA集合比较(面试)

HashSet:
1.不能重复
2.不保证顺序
3.可以放置null
4.底层是哈希表实现(HashMap)

TreeSet:
1.不能重复
2.默认字典顺序(字符串),升序(数字)
3.不可以放置null
4.底层是红黑树实现(TreeMap)

HashMap:
1.存储键值对,允许一个key可以是null,多个value可以是null
2.不保证顺序
3.key不能重复
4.线程不安全
5.初始大小16,扩容时:2*old

HashTable:
1.线程安全
2.不允许出现null(key和value都不行)
3.初始大小11,扩容时:2*old+1

TreeSet:
1.插入删除查找都是O(lgn)
2.保证数据有序状态

ConcurrentHashMap:
1.分段锁,segment默认是16个,效率提升16倍;
2.修改加锁,读是不加锁的;
3.线程安全

CopyOnWriteArrayList:
1.使用写复制思想做的:修改的时候加锁,然后先复制一份做修改,完成后在赋值回去
2.不能保证实时一致性,适用于经常读,不经常修改的集合
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值