java的一些集合数据类型

本文探讨了Java集合框架中不同数据结构如ArrayList、Vector、LinkedList等的线程安全性,并对比了HashTable与HashMap的特点及应用场景。
  • HashTable上下文同步:指的是它在更新hashcode的时候,要获取锁。

正解:同步是指在同一个时间点下面只有一个线程可以更改hash表,任何线程在更新hash表之前都要获得对象锁,其他现成要等待对象锁的释放。

  • HashMap同步的实现:在代码中用Synchronize关键字修饰

正解:Map m=Collections.synchronizedMap(new HashMap()) 来返回一个同步的Map,该Map封装了底层的HashMap所有方法,是的在多线程情况下安全。

 

 

 来源更新线程安全特点
ArrayListObject[] array 快O(1)动态扩展(1.5倍) 
VectorObject[] array快O(1)动态扩展(2倍) 
LinkedList双向链表慢O(n) 
HashTableDictionary效率没有HashTable高 不允许主键null
HashMapMap 由于没有实现线程安全效率高轻量级的HashTable,只允许一个主键为null,回收方式(强引用,必须强制回收)
TreeMap SortMap  读键序的效率高  按键有序
LinkedHashMap HashMap  需要输入和输出顺序一样的时候使用  还可以按读取顺序排序
WeakHashMap Map    和HashMap的区别在于回收方式(弱引用,直接回收)

转载于:https://www.cnblogs.com/qjjnxd/articles/4703354.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值