Map接口中键和值一一映射. 可以通过键来获取值。
- 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值。
- 当访问的值不存在的时候,方法就会抛出一个NoSuchElementException异常.
- 当对象的类型和Map里元素类型不兼容的时候,就会抛出一个 ClassCastException异常。
- 当在不允许使用Null对象的Map中使用Null对象,会抛出一个NullPointerException 异常。
- 当尝试修改一个只读的Map时,会抛出一个UnsupportedOperationException异常。
序号 | 方法描述 |
1 | void clear( ) 从此映射中移除所有映射关系(可选操作)。 |
2 | boolean containsKey(Object k) 如果此映射包含指定键的映射关系,则返回 true。 |
3 | boolean containsValue(Object v) 如果此映射将一个或多个键映射到指定值,则返回 true。 |
4 | Set entrySet( ) 返回此映射中包含的映射关系的 Set 视图。 |
5 | boolean equals(Object obj) 比较指定的对象与此映射是否相等。 |
6 | Object get(Object k) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 |
7 | int hashCode( ) 返回此映射的哈希码值。 |
8 | boolean isEmpty( ) 如果此映射未包含键-值映射关系,则返回 true。 |
9 | Set keySet( ) 返回此映射中包含的键的 Set 视图。 |
10 | Object put(Object k, Object v) 将指定的值与此映射中的指定键关联(可选操作)。 |
11 | void putAll(Map m) 从指定映射中将所有映射关系复制到此映射中(可选操作)。 |
12 | Object remove(Object k) 如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 |
13 | int size( ) 返回此映射中的键-值映射关系数。 |
14 | Collection values( ) 返回此映射中包含的值的 Collection 视图。 |
实例
下面的例子来解释Map的功能
import java.util.*;public class CollectionsDemo {
public static void main(String[] args) {
Map 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
{Mahnaz=31, Ayan=12, Daisy=14, Zara=8}
java中Map集合的常用方法
Map集合和Collection集合的区别
Map集合是有Key和Value的,Collection集合是只有Value。
Collection集合底层也是有Key和Value,只是隐藏起来。
V put(K key, V value)
向map集合中添加Key为key,Value为value的元素,当添加成功时返回null,否则返回value。
就是说Map集合中的Key是不能重复的,这就类似于Set集合中元素不能重复,但是Map集合中的Value是可以重复。
void putAll(Map<? extends K,? extends V> m)
向map集合中添加指定集合的所有元素
void clear()
把map集合中所有的键值删除
boolean containsKey(Object key)
检出map集合中有没有包含Key为key的元素,如果有则返回true,否则返回false。
boolean containsValue(Object value)
检出map集合中有没有包含Value为value的元素,如果有则返回true,否则返回false。
Set<Map.Entry<K,V>> entrySet()
返回map到一个Set集合中,以map集合中的Key=Value的形式返回到set中。
boolean equals(Object o)
判断两个Set集合的元素是否相同
底层也是重写了equals方法
查看HashMap集合时,没有发现equals方法,那么我们就去找他的父类。
V get(Object key)
根据map集合中元素的Key来获取相应元素的Value
int hashCode()
返回map集合的哈希码值
boolean isEmpty()
检出map集合中是否有元素,如果没有则返回true,如果有元素则返回false
Set<K> keySet()
返回map集合中所有Key
V remove(Object key)
删除Key为key值的元素
int size()
返回map集合中元素个数
Collection<V> values()
返回map集合中所有的Value到一个Collection集合