本文概述
- HashMap的例子
- HashSet的示例
基础 | 哈希图 | 哈希集 |
---|---|---|
Definition | Java HashMap是基于哈希表的Map接口实现。 | HashSet是一个Set。它创建一个使用哈希表进行存储的集合。 |
Implementation | HashMap实现Map, Cloneable和Serializable接口es。 | HashSet实现Set, Cloneable, Serializable, Iterable和Collection接口。 |
Stores | 在HashMap中, 我们存储一个键值对。它维护键和值的映射。 | 在HashSet中, 我们存储对象。 |
Duplicate values | 它不允许重复的键, 但是允许重复的值。 | 它不允许重复的值。 |
Null values | 它可以包含一个null键和多个null值。 | 它可以包含一个空值。 |
插入方法 | HashMap使用put()方法在HashMap中添加元素。 | HashSet使用add()方法在HashSet中添加元素。 |
Performance | HashMap比HashSet更快/, 因为值与唯一键关联。 | HashSet比HashMap慢, 因为成员对象用于计算哈希码值, 这对于两个对象可以相同。 |
对象数 | 在添加操作期间仅创建一个对象。 | 在put操作期间创建了两个对象, 一个用于键, 一个用于值。 |
Storing Mechanism | HashMap在内部使用哈希存储对象。 | HashSet在内部使用HashMap对象存储对象。 |
Uses | 当我们不保持独特性时, 总是喜欢。 | 当我们需要维护数据的唯一性时使用它。 |
Example | {a-> 4, b-> 9, c-> 5}其中a, b, c是键, 而4, 9、5是与键关联的值。 | {6、43、2、90、4}表示集合。 |
HashMap的例子 在下面的示例中, 当我们添加具有相同键和不同值的重复元素时, 键的先前值将被新值替换。
当我们添加具有相同键和相同值的重复元素时, 键值对不会存储第二次。
import java.util.*;
public class HashMapExample{public static void main(String args[]){//creating object of HashMapHashMap<
String, Integer>
hm= new HashMap<
String, Integer>
();
//adding key-value pairhm.put("John", 23);
hm.put("Monty", 27 );
hm.put("Richard", 21);
hm.put("Devid", 19);
System.out.println("Before adding duplicate keys: ");
System.out.println(hm);
//adding duplicate keyshm.put("Monty", 25);
//replace the Monty's previous agehm.put("Devid", 19);
System.out.println("After adding duplicate keys: ");
System.out.println(hm);
}}
输出:
文章图片
HashSet的示例 在下面的示例中, 我们可以看到重复值不存储在HashSet中, 而空值仅存储一次。
import java.util.*;
public class HashSetExample{public static void main(String args[]){//creating object of HashSet HashSet<
String>
hs= new HashSet<
String>
();
//adding values to HashSeths.add("Java");
hs.add("Python");
hs.add("C++");
hs.add("C");
System.out.println("Before adding duplicate and null values: ");
System.out.println(hs);
//adding duplicate valueshs.add("Python");
hs.add("C");
System.out.println("After adding duplicate values: ");
System.out.println(hs);
//adding null valueshs.add(null);
hs.add(null);
System.out.println("After adding null values: ");
System.out.println(hs);
}}
输出:
文章图片
推荐阅读
- 如何在Java中比较两个ArrayList
- HashMap和TreeMap之间的区别
- Array和ArrayList之间的区别
- Java中的ConcurrentModificationException
- Java中的ClassLoader
- 什么是CompletableFuture()
- Java中的ArrayIndexOutOfBoundsException
- 从Oracle数据库检索图像的示例
- Android开发——diglog cancel与dismiss方法区别