java集合中HashMap、HashTable、HashSet的区别

HashMap基于hashing原理,通过put()和get()方法储存和获取对象。

HashMap和HashTable的区别

HashMap和HashTable都实现了Map接口。
主要的区别有:线程安全性,同步(synchronization),以及速度。
HashMap几乎可以等价于HashTable。
HashMap是非同步的,并且HashMap可以接受为null的键值(key)和值(value),而HashTable则不行。
HashTable是同步的,意味着HashTable是线程安全的,多个线程可以共享一个HashTable;而多个线程是不能共享HashMap的。
Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而HashTable的enumerator迭代器。
HashMap可以通过下面的语句进行同步:Map m = Collections.synchronizeMap(hashMap);

HashMap和HashSet的区别

HashSet实现了Set接口,它不允许集合中有重复的值,HashMap实现了Map接口,Map接口对键值对进行映射。
HashSet扩展了HashMap,所以底层还是用到map存储,存储实现同map一致,HashMap储存键值,HashSet存储对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值