Java - Map 接口
Map 接口
Map 接口将唯一的键映射到值。键是一个对象,您可以用它在以后检索值。
给定一个键和一个值,您可以将值存储在 Map 对象中。存储值后,您可以使用其键检索它。
当调用 map 中不存在项目时,几个方法会抛出 NoSuchElementException。
当对象与 map 中的元素不兼容时,会抛出 ClassCastException。
如果尝试使用 null 对象且 map 中不允许 null,则会抛出 NullPointerException。
当尝试修改不可变 map 时,会抛出 UnsupportedOperationException。
Map 接口方法
| 序号 | 方法 & 描述 |
|---|---|
| 1 | void clear( ) 从调用 map 中移除所有键/值对。 |
| 2 | boolean containsKey(Object k) 如果调用 map 包含 k 作为键,则返回 true。否则,返回 false。 |
| 3 | boolean containsValue(Object v) 如果 map 包含 v 作为值,则返回 true。否则,返回 false。 |
| 4 | Set entrySet( ) 返回一个包含 map 中条目的 Set。该 set 包含 Map.Entry 类型的对象。此方法提供调用 map 的 set 视图。 |
| 5 | boolean equals(Object obj) 如果 obj 是 Map 且包含相同的条目,则返回 true。否则,返回 false。 |
| 6 | Object get(Object k) 返回与键 k 关联的值。 |
| 7 | int hashCode( ) 返回调用 map 的 hash code。 |
| 8 | boolean isEmpty( ) 如果调用 map 为空,则返回 true。否则,返回 false。 |
| 9 | Set keySet( ) 返回一个包含调用 map 中键的 Set。此方法提供调用 map 中键的 set 视图。 |
| 10 | Object put(Object k, Object v) 在调用 map 中放入一个条目,覆盖与键关联的任何先前值。键和值分别是 k 和 v。如果键之前不存在,则返回 null。否则,返回与键链接的先前值。 |
| 11 | void putAll(Map m) 将 m 中的所有条目放入此 map。 |
| 12 | Object remove(Object k) 移除键等于 k 的条目。 |
| 13 | int size( ) 返回 map 中键/值对的数量。 |
| 14 | Collection values( ) 返回一个包含 map 中值的 collection。此方法提供 map 中值的 collection 视图。 |
实现 Map 的类
以下是实现 Map 以使用 Map 功能的类 -
- HashMap
- EnumMap
- LinkedHashMap
- WeakHashMap
- TreeMap
扩展 Map 的接口
以下是扩展 Map 接口的接口 -
- SortedMap
- NavigableMap
- ConcurrentMap
Map 接口示例
示例 1
Map 在诸如 HashMap 等各种类中有其实现。以下是一个示例,用于解释 map 功能 −
import java.util.HashMap;
import java.util.Map;
public class CollectionsDemo {
public static void main(String[] args) {
Map<String, String> m1 = new HashMap<>();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m1);
}
}
输出
Map Elements
{Daisy = 14, Ayan = 12, Zara = 8, Mahnaz = 31}
示例 2
Map 在诸如 TreeMap 等各种类中有其实现,TreeMap 会根据键对条目进行排序。以下是一个使用 TreeMap 解释 map 功能的示例 −
import java.util.Map;
import java.util.TreeMap;
public class CollectionsDemo {
public static void main(String[] args) {
Map<String, String> m1 = new TreeMap<>();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m1);
}
}
输出
Map Elements
{Ayan=12, Daisy=14, Mahnaz=31, Zara=8}
示例 3
Map 在诸如 HashMap 等各种类中有其实现。以下是一个使用 HashMap 解释 map 函数的示例,向 map 中添加和移除元素−
import java.util.HashMap;
import java.util.Map;
public class CollectionsDemo {
public static void main(String[] args) {
Map<String, String> m1 = new HashMap<>();
m1.put("Zara", "8");
m1.put("Mahnaz", "31");
m1.put("Ayan", "12");
m1.put("Daisy", "14");
System.out.println();
System.out.println(" Map Elements");
System.out.print("\t" + m1);
m1.remove("Daisy");
System.out.println(" Map Elements");
System.out.print("\t" + m1);
}
}
输出
Map Elements
{Daisy=14, Ayan=12, Zara=8, Mahnaz=31} Map Elements
{Ayan=12, Zara=8, Mahnaz=31}