Java 中 HashMap 和 HashSet 的区别。
java 8object oriented programmingprogramming
HashMap 和 HashSet 都是 Java Collection 框架中最重要的类之一。
以下是 HashMap 和 HashSet 之间的重要区别。
Sr.不。 | Key | HashMap | HashSet |
---|---|---|---|
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}