问:

hashset 存储与 hashmap 存储有什么区别?

答:
HashSet和HashMap都是基于哈希表实现的,但是它们有以下几点区别:
1. 存储结构不同。HashSet只存储对象,是一个无序不重复的集合。HashMap存储键值对,是一个键值映射表。
2. HashSet只有key,没有value。HashSet中的元素只有key,没有重复的key。HashMap有key和value,key不重复,value可以重复。
3. HashSet存储的元素是无序的。HashSet存储的元素位置是由哈希算法决定的,不保证顺序。HashMap的元素也是无序的,key和value之间存在一一映射,但key和key之间不保证顺序。
4. HashSet的元素唯一。HashSet不允许重复元素,重复添加同一个元素没有效果。HashMap的key唯一,value可以重复,重复put相同key会覆盖value。
5. HashSet检查重复使用equals()方法。在HashSet中,两个对象的equals()方法返回true, HashCode()返回相同的结果,才被视为重复不存入。HashMap也是采用相同算法,但只作用于key。
6. HashSet不能通过索引获取元素。HashSet只有存储结构,不能通过索引访问元素。HashMap有get(key)方法可以通过key访问对应value。
7. HashSet适合存储无序不重复的数据。HashMap适合存储键值映射关系,善于查找、修改和删除键关联的值。
总之,HashSet和HashMap有着紧密的联系和一定的区别。选择使用哪个集合类,要根据实际需求和用途来决定。它们有各自的使用场景,可以相互补充。