A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘波啵 中级黑马   /  2019-4-19 12:40  /  1185 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

hashSet输出的特点就是没有固定的顺序,在类的最下面打印equal()and HashCode()目的是为了防止对象中输出时出现重复的值,

hashSet 和hashMap的区别:

1,HashSet和HashMap都是Collection的一部分,他们能让我们使用对象的集合,collection有自己的实现和接口,分别是list,set和Queue接口,Set集合不允许有对象重复的值,list允许有重复的值,他对集合中的对象进行索引。

什么是HashSet?

1,HashSet实现了Set接口,他不允许集合中有重复的值,当我们提到HashSet之前,要先确保对象重写equal()和hashCode()方法,这样才能比较对象的值是否相等以确保set中没有存储相等的对象。如果我们没有重写这两个方法的默认实现。

public boolean add(Object o)方法用来在Set中添加元素,当元素有重复时则会立即返回false,如或添加成功会返回true。

什么是HsahMap?

HashMap实现了Map接口,Map接口对键值进行映射。map中不允许有重复的键。Map接口有两个基本的实现,时HashMap和TreeMap。TreeMap保存了对象的排列次序,而HashMap不能。HashMap允许键和值为null。

HashMap时非synchronized的,但是collection框架提供方法能保证HashMap   synchronized,这样多线程同时访问HashMap时,能保证只有一个线程更改Map。

public  Object put(Object Key ,Object value) 方法用来将元素添加到map中。

        *HashMap*                            HashSet

HashMap实现了Map接口                                              HashSet实现了Set接口   

         

HashMap存储键值对                                                     HashSet仅仅存储对象

使用put()方法将元素放入                                          使用add()方法将元素放入set种

Map中

HashMap中使用键对象来计算                                      HashSet使用成员对象来计算hashcode值,                                                                                       对于两个对象来说hashcode可能相同,所以

hashCode值                                                                 用eqaus()方法来判断对象的想等性,如果

                                         两个对象不同的话,那么返回false

HashMap比较快,因为使用唯一

的键来获取对象                                                             HashSet较HashMap来说比较慢

  hs.add("ai");//return map.put(e, PRESENT)==null;返回的只能是布林值




0 个回复

您需要登录后才可以回帖 登录 | 加入黑马