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值,而没有任何限制。 | 另一方面,哈希集在其集合中仅允许一个空值,此后不允许添加任何空值。 |
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()`