HashSet 是 Set 接口的实现,不允许重复值。最重要的是,存储在 HashSet 中的对象必须覆盖 equals() 以检查相等性,而没有重复值的 hashCode() 方法存储在我们的集合中。
HashMap 是 Map 接口的一个实现,将键映射到值。映射中不允许出现重复键。基本上,Map 接口有两个实现类 HashMap 和 TreeMap,主要区别在于 TreeMap 维护对象的顺序,而 HashMap 不会。HashMap 允许空值和空键。
HashSet 和 HashMap 都不同步。
HashMap 和 HashSet 的区别
1)实现: HashMap实现Map接口,HashSet实现Set接口。
2)重复: HashSet 不允许重复值。 HashMap 存储键值对,并且不允许重复键。如果键重复,则旧键将替换为新值。
3) 存储对象时的对象数: HashMap 需要两个对象 put(K key, V Value) 向 HashMap 对象添加一个元素,而 HashSet 只需要一个对象 add(Object o) 。
4)虚拟值:在HashMap中没有虚拟值的概念,
HashSet 内部使用 HashMap 来添加元素。在HashSet的,参数在加载传递(Object)方法作为密钥K的Java内部关联于附加(Object)方法传递的每个值虚设值。
5)存储或添加机制: HashMap内部使用散列来存储或添加对象,HashSet内部使用HashMap对象存储或添加对象。
6) 更快: HashSet 比 HashMap 慢,
7) 插入HashMap 使用 put() 方法存储数据,而在 HashSet 中使用 add() 方法添加或存储数据。
8) 例子: HashSet 是一个集合,例如 {1, 2, 3, 4, 5, 6, 7},
HashMap 是一个键 -> 值对(键到值)映射,例如 {a -> 1, b -> 2, c -> 2, d -> 1}
请注意,在我上面的示例中,HashMap 中不能有重复的键,但可以有重复的值。
在HashSet中,不能有重复的元素
Java中HashSet和HashMap的例子
哈希集
// Java program to demonstrate working of HashSet
import java.util.HashSet;
public class HashSetExample {
public static void main(String[] args)
{
HashSet hs = new HashSet();
// Adding elements to the HashSet
hs.add("geeks");
hs.add("practice");
hs.add("contribute");
;
System.out.println("Before adding duplicate values \n\n" + hs);
// Addition of duplicate elements
hs.add("geeks");
hs.add("practice");
System.out.println("\nAfter adding duplicate values \n\n" + hs);
// Addition of null values
hs.add(null);
hs.add(null);
// Displaying HashSet elements
System.out.println("\nAfter adding null values \n\n" + hs);
}
}
Before adding duplicate values
[practice, geeks, contribute]
After adding duplicate values
[practice, geeks, contribute]
After adding null values
[null, practice, geeks, contribute]
哈希表
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args)
{
/* This is how to declare HashMap */
HashMap hm = new HashMap();
/*Adding elements to HashMap*/
hm.put(12, "geeks");
hm.put(2, "practice");
hm.put(7, "contribute");
System.out.println("\nHashMap object output :\n\n" + hm);
// store data with duplicate key
hm.put(12, "geeks");
System.out.println("\nAfter inserting duplicate key :\n\n" + hm);
}
}
HashMap object output :
{2=practice, 7=contribute, 12=geeks}
After inserting duplicate key :
{2=practice, 7=contribute, 12=geeks}