当前位置: 首页 > 编程笔记 >

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

阎阎宝
2023-03-14
本文向大家介绍Java中的HashMap和HashSet之间的区别。,包括了Java中的HashMap和HashSet之间的区别。的使用技巧和注意事项,需要的朋友参考一下

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}
 类似资料:
  • 问题内容: 除了不允许重复值的事实之外,和之间有什么区别? 我的意思是实施明智?这有点含糊,因为它们都使用 哈希表 存储值。 问题答案: 它们是完全不同的构造。A 是的实现。一个地图键映射到值。密钥查找使用哈希进行。 另一方面,a 是的实现。一组被设计成一组的数学模型相匹配。一个不使用支持其实现,正如你指出。但是,它实现了完全不同的接口。 当您寻找最适合您的目的时,本教程是一个很好的起点。如果您真

  • 本文向大家介绍HashMap 和 HashSet的区别,包括了HashMap 和 HashSet的区别的使用技巧和注意事项,需要的朋友参考一下 HashMap和HashSet的区别是Java面试中最常被问到的问题。如果没有涉及到Collection框架以及多线程的面试,可以说是不完整。而Collection框架的问题不涉及到HashSet和HashMap,也可以说是不完整。HashMap和Hash

  • 本文向大家介绍Java中HashMap和Hashtable之间的区别,包括了Java中HashMap和Hashtable之间的区别的使用技巧和注意事项,需要的朋友参考一下 Hashtable是原始java.util的一部分,是Dictionary的具体实现。但是,Java 2重新设计了Hashtable,使其也实现了Map接口。因此,哈希表现在已集成到集合框架中。它类似于HashMap,但已同步。

  • 问题内容: 在Java中,并作为收藏。但是我不知道在什么情况下应该使用什么时间。两者之间的主要区别是什么? 问题答案: 您正在专门询问ArrayList和HashMap,但我认为要完全了解发生了什么,您必须了解Collections框架。因此,ArrayList实现List接口,而HashMap实现Map接口。因此,真正的问题是您何时要使用列表以及何时要使用地图。这是Java API文档有很大帮助

  • 问题内容: Java中的a 和a有什么区别? 对于非线程应用程序,哪个更有效? 问题答案: 和在Java中有一些区别: 是同步的,而不是。这对于非线程应用程序更好,因为非同步对象的性能通常优于同步对象。 不允许null键或值。 允许一个键和任意数量的值。 的子类之一是,因此,如果你想要可预测的迭代顺序(默认情况下为插入顺序),则可以轻松地将替换为。如果使用,这将不那么容易。 由于同步对你来说不是问

  • 本文向大家介绍HashMap 和 HashSet区别?相关面试题,主要包含被问及HashMap 和 HashSet区别?时的应答技巧和注意事项,需要的朋友参考一下 如果你看过 `HashSet` 源码的话就应该知道: HashSet 底层就是基于 HashMap 实现的。(HashSet 的源码非常非常少,因为除了 `clone() `、`writeObject()`、`readObject()`