HashMap与HashSet的区别

来源:互联网 发布:淘宝卖家软件工具吧 编辑:程序博客网 时间:2024/06/06 02:23

HashMap和HashSet都是collection框架的一部分,它们让我们能够使用对象的集合。collection框架有自己的接口和实现,主要分为Set接口,List接口和Queue接口。它们有各自的特点,Set的集合里不允许对象有重复的值,List允许有重复,它对集合中的对象进行索引,Queue的工作原理是FCFS算法(First Come, First Serve)。

相同之处:
1.都是基于collection框架的子类;
2.都是hash成员;
3.都是数据集合;

不同之处:
1.HashMap实现了Map接口;HashSet实现了Set接口;
2.HashMap储存键值对;HashSet仅仅存储对象;
3.HashMap使用put()方法将元素放入;HashSet使用add()方法将元素放入;
4.HashMap中使用键对象来计算hashcode值;HashSet使用成员对象来计算hashcode值,对于两个对象来说hashcode可能相同,所以在使用HashSet之前首先要重写equals()和hashCode()方法,这样才能比较对象的值是否相等,以确保set中没有储存相等的对象。如果我们没有重写这两个方法,将会使用这个方法的默认实现。如果两个对象不同的话,那么返回false;
5.HashMap比较快,因为是使用唯一的键来获取对象;HashSet较HashMap来说比较慢

原创粉丝点击