常用对象API(ArrayList,Vector,LinkedList的存储性能和特性,HashMap和HashTable的区别)

ArrayList,Vector,LinkedList的存储性能和特性:

ArrayList和Vector都是使用数组的方式来存储数据,此数组元
素数大于实际存储的数据以便增加和插入元素, 它们都允许直接按序
号索引元素, 但是插入元素要涉及数组元素移动等内存操作, 所以索
引数据快而插入数据慢,Vector 由于使用了 synchronized 方法(线
程安全) ,通常性能上较 ArrayList 差,而 LinkedList 使用双向链表
实现存储, 按序号索引数据需要进行前向或后向遍历, 但是插入数据
时只需要记录本项的前后项即可,所以插入速度较快。

 

HashMap和HashTable的区别:

二者都实现了 Map 接口,是将惟一键映射到特定的值上;
主要区别在于:
1)HashMap 没有排序,允许一个 null 键和多个 null 值 , 而
Hashtable 不允许;
2)HashMap 把 Hashtable 的 contains 方 法 去 掉 了 , 改 成
containsvalue 和 containsKey, 因为 contains 方法容易让人引起误解;
3)Hashtable 继承自 Dictionary 类,HashMap 是 Java1.2 引进的
Map 接口的实现;
4)Hashtable 的方法是 Synchronize 的,而 HashMap 不是,在多
个线程访问 Hashtable 时,不需要自己为它的方法实现同步, 而
HashMap 就必须为之提供外同步。 Hashtable 和 HashMap 采用 的
hash/rehash 算法大致一样,所以性能不会有很大的差异。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值