Java中HashSet和HashMap类之间的区别

本文概述

  • HashMap的例子
  • HashSet的示例
Java中的HashMap和HashSet是最受欢迎的Collection类。两者都用于数据结构。下表描述了HashMap和HashSet之间的区别:
基础 哈希图 哈希集
Definition Java HashMap是基于哈希表的Map接口实现。 HashSet是一个Set。它创建一个使用哈希表进行存储的集合。
Implementation HashMap实现Map, Cloneable和Serializable接口es。 HashSet实现Set, Cloneable, Serializable, Iterable和Collection接口。
Stores 在HashMap中, 我们存储一个键值对。它维护键和值的映射。 在HashSet中, 我们存储对象。
Duplicate values 它不允许重复的键, 但是允许重复的值。 它不允许重复的值。
Null values 它可以包含一个null键和多个null值。 它可以包含一个空值。
插入方法 HashMap使用put()方法在HashMap中添加元素。 HashSet使用add()方法在HashSet中添加元素。
Performance HashMap比HashSet更快/, 因为值与唯一键关联。 HashSet比HashMap慢, 因为成员对象用于计算哈希码值, 这对于两个对象可以相同。
对象数 在添加操作期间仅创建一个对象。 在put操作期间创建了两个对象, 一个用于键, 一个用于值。
Storing Mechanism HashMap在内部使用哈希存储对象。 HashSet在内部使用HashMap对象存储对象。
Uses 当我们不保持独特性时, 总是喜欢。 当我们需要维护数据的唯一性时使用它。
Example {a-> 4, b-> 9, c-> 5}其中a, b, c是键, 而4, 9、5是与键关联的值。 {6、43、2、90、4}表示集合。
【Java中HashSet和HashMap类之间的区别】让我们通过程序来了解差异。
HashMap的例子 在下面的示例中, 当我们添加具有相同键和不同值的重复元素时, 键的先前值将被新值替换。
当我们添加具有相同键和相同值的重复元素时, 键值对不会存储第二次。
import java.util.*; public class HashMapExample{public static void main(String args[]){//creating object of HashMapHashMap< String, Integer> hm= new HashMap< String, Integer> (); //adding key-value pairhm.put("John", 23); hm.put("Monty", 27 ); hm.put("Richard", 21); hm.put("Devid", 19); System.out.println("Before adding duplicate keys: "); System.out.println(hm); //adding duplicate keyshm.put("Monty", 25); //replace the Monty's previous agehm.put("Devid", 19); System.out.println("After adding duplicate keys: "); System.out.println(hm); }}

输出:
Java中HashSet和HashMap类之间的区别

文章图片
HashSet的示例 在下面的示例中, 我们可以看到重复值不存储在HashSet中, 而空值仅存储一次。
import java.util.*; public class HashSetExample{public static void main(String args[]){//creating object of HashSet HashSet< String> hs= new HashSet< String> (); //adding values to HashSeths.add("Java"); hs.add("Python"); hs.add("C++"); hs.add("C"); System.out.println("Before adding duplicate and null values: "); System.out.println(hs); //adding duplicate valueshs.add("Python"); hs.add("C"); System.out.println("After adding duplicate values: "); System.out.println(hs); //adding null valueshs.add(null); hs.add(null); System.out.println("After adding null values: "); System.out.println(hs); }}

输出:
Java中HashSet和HashMap类之间的区别

文章图片

    推荐阅读