java集合(又称容器)

1 篇文章 0 订阅
1 篇文章 0 订阅
前两天去面试:
面试官:容器了解吗?
我:不太清楚(内心戏:类似与Docker容器这么深层的技术,我就只是听说过,还是直接说不清楚,省的他继续往下问)
后来被毙了,今天想来学习下容器,然而我发现搜到的都是java集合,原来问的不是Docker容器,生无可恋脸!
容器的概念: 如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合  
血的教训
那今天就把java常用集合(容器)再总结下:

 名称原理特性线程安全优点缺点
List
ArrayList定长数组实现(超过长度会新建扩容数组后将数据复制到新数组)有序,可重复索引快在增删距离末尾距离长的情况下,效率慢
LinkedList使用双向链表结构,记录头尾节点及数量有序,可重复增删快索引距离头尾长的情况下效率
MapHashMap定长数组结构,使用Hash散列分布元素,Hash碰撞使用拉链法解决,即每个元素为一个单向链表,对于Hash值一致的多条数据向后追加无序,Key不可重复增删查快遍历慢
LinkedHashMap继承HashMap并维护一个双向链表保证有序有序,Key不可重复增删查遍历快在hashmap的基础上附加了一个双向链表,所以不如HashMap效率高
TreeMap红黑二叉树结构有序(非添加顺序,通过大小排序)索引快
增删效率慢
CurrentHashMap同HashMap无序是(使用volatile保证并发读取可见性,使用synchronized保证操作)增删查快遍历慢


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值