Java 中 HashMap 和 HashSet 的区别。

java 8object oriented programmingprogramming

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

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

Sr.不。KeyHashMapHashSet
1实现Hashmap 是 Map 接口的实现。另一方面,Hashset 是 set 接口的实现。
2内部实现Hashmap 内部不实现 hashset 或任何 set实现。Hashset 内部使用 Hashmap 实现。
3元素的存储HashMap 以键值对的形式存储元素,即每个元素都有其对应的键,该键是在迭代过程中检索元素所必需的。HashSet 仅存储对象,不维护这样的键值对。
4添加元素的方法哈希图的Put方法用于在哈希图中添加元素。另一方面,哈希集的添加方法用于在哈希集中添加元素。
5索引性能由于Hashmap具有唯一的键,因此在迭代过程中检索元素的速度更快。HashSet完全基于对象,因此与哈希图相比速度较慢。
6允许空单个空键和任意数量的空值可以无限制地插入到 hashmap 中。另一方面,Hashset 只允许其集合中有一个空值,之后不允许添加任何空值。

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 

"
+ hs);       hs.add("John");       hs.add("Smith");       System.out.println("
After adding duplicate values

"
+ hs);       hs.add(null);       hs.add(null);       System.out.println("
After adding null values

"
+ 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("
HashMap object output :

"
+ hm);       hm.put(12, "Smith");       System.out.println("
After inserting duplicate key :

"
+ hm);    } }

输出

HashMap object output :
{2=Smith, 7=Peter, 12=John}
After inserting duplicate key :
{2=Smith, 7=Peter, 12=John}


相关文章