Java基础之Collection

1.继承关系图

继承关系图

1.特性表
接口属性特性线程安全常见注意问题比较
ListArrayList初始大小:10
扩容:1.5倍
存储:Object[]
顺序存储
随机访问快速
不易插入和删除某元素,需要执行数组拷贝
不安全,fail-fast机制,可用Collections.synchronizedList(list)实现,其原理为给各个方法加对象锁(iterator()和listIterator()方法除外)subList()方法得到的是原list的试图,对某一方的修改会导致另一方的改变Vector的同步由synchronized修饰方法实现,而Collections实现同步为synchronized锁对象成代码块来调用原list对应方法,安全上后者更好但不用方法间也存在竞争
LinkedList双向链表链表存储
方便插入删除操作
不能随机访问
遍历慢
有实现Queue接口,可当顺序队列使用
不安全,fail-fast机制,安全实现同ArrayList(同上)subList问题(同上)
Vector初始大小:10
扩容:如果构造函数传入扩容增量则为(原长度+增量)否则为(原长度*2),
存储:Object[]
同ArrayList
有子类Stack
安全,实现为所有方法增加synchronized关键字,其不保证多线程调不同方法出现错误。思考同步方法和同步代码块subList问题(同上)
接口特性实现原理线程安全
SetHashSet无序,唯一使HashMap成为其属性,使用HashMap的key存储不安全,可用Collections.synchronizedCollection()方法生成一个线程安全的对应集合
LinkHashSet有序,按插入顺序使LinkHashMap成为其属性,使用其的key存储,有序原理和LinkHashMap一样,Entry中留有指向前后节点的引用
TreeSet有序,按元素的比较器排序使TreeMap成为其属性,使用其key存储,内部为红黑树
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值