Java中的HashMap和HashSet之间的区别。

2023-11-18 08:10:35

HashMap和HashSet都是Java Collection框架最重要的类之一。

以下是HashMap和HashSet之间的重要区别。

序号哈希映射哈希集
1实作Hashmap是Map接口的实现。另一方面,哈希集是set接口的实现。
2内部实施Hashmap在内部不实现哈希集或实现的任何集合。Hashset在内部使用Hashmap来实现。
3元素存储HashMap以键-值对的形式存储元素,即每个元素都有其对应的键,该键是在迭代过程中进行检索所必需的。HashSet仅存储未维护此类键值对的对象。
4添加元素的方法哈希映射的put方法用于在哈希映射中添加元素。另一方面,哈希集的添加方法用于在哈希集中添加元素。
5指数表现由于Hashmap具有唯一键,因此在其迭代期间可以更快地检索元素。HashSet完全基于对象,因此与hashmap相比要慢一些。
6允许为空可以在哈希映射中插入单个null键和任意数量的null值,而没有任何限制。另一方面,哈希集在其集合中仅允许一个空值,此后不允许添加任何空值。

Hashmap与Hashset的示例

JavaTester.java

import java.util.HashSet;
public class JavaTester {
   public static void main(String[] args){
      HashSet<String> hs = new HashSet<String>();
      hs.add("John");
      hs.add("Smith");
      hs.add("Peter");
      System.out.println("Before adding duplicate values \n\n" + hs);
      hs.add("John");
      hs.add("Smith");
      System.out.println("\nAfter adding duplicate values \n\n" + hs);
      hs.add(null);
      hs.add(null);
      System.out.println("\nAfter adding null values \n\n" + hs);
   }
}

输出结果

Before adding duplicate values
[John, Smith, Peter]
After adding duplicate values
[John, Smith, Peter]
After adding null values
[null, John, Smith, Peter]

示例

JavaTester.java

import java.util.HashMap;
public class JavaTester {
   public static void main(String[] args){
      HashMap<Integer, String> hm = new HashMap<Integer, String>();
      hm.put(12, "John");
      hm.put(2, "Smith");
      hm.put(7, "Peter");
      System.out.println("\nHashMap object output :\n\n" + hm);
      hm.put(12, "Smith");
      System.out.println("\nAfter inserting duplicate key :\n\n" + hm);
   }
}

输出结果

HashMap object output :
{2=Smith, 7=Peter, 12=John}
After inserting duplicate key :
{2=Smith, 7=Peter, 12=John}
  • 作者:
  • 原文链接:
    更新时间:2023-11-18 08:10:35