学习笔记,仅供参考,有错必纠
Map接口
Map集合概述
Map是java.util包下的一个接口,它将键映射到值的对象,且一个映射不能包含重复的键,每个键最多只能映射一个值。
Map接口和Collection接口的不同:
- Map是双列的,Collection是单列的;
- Map的键唯一,Collection的子体系Set是唯一的;
- Map集合的数据结构值针对键有效,跟值无关,Collection集合的数据结构是针对元素有效。
Map集合的功能概述
- 添加功能
V put(K key, V value)
将指定的值与此映射中的指定键关联(可选操作)。简而言之,添加元素,如果键是第一次存储,就直接存储元素,并返回null,如果键不是第一次存储,就用值把以前的值替换掉,返回以前的值。
- 删除功能
void clear()
从此映射中移除所有映射关系(可选操作),此调用返回后,该映射将为空。简而言之,移除所有的键值对元素
V remove(Object key)
如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。更正式地说,如果此映射包含针对满足 key==null ? k==null :key.equals(k)
)的键 k 到值 v 的映射关系,则移除该映射关系。简而言之,根据键删除键值对元素,并把值返回。
- 判断功能
boolean containsKey(Object key)
如果此映射包含指定键的映射关系,则返回 true。更正式地说,当且仅当此映射包含针对满足 key==null ? k==null : key.equals(k)
的键 k 的映射关系时,返回 true。简而言之,判断集合是否包含指定的键,包含则返回true.
boolean containsValue(Object value)
如果此映射将一个或多个键映射到指定值,则返回 true。更正式地说,当且仅当此映射至少包含一个对满足 value==null ? v==null : value.equals(v)
的值 v 的映射关系时,返回 true。简而言之,判断集合是否包含指定的值,包含则返回true.
boolean isEmpty()
如果此映射未包含键-值
映射关系,则返回 true。 简而言之,判断集合是否为空。
- 获取功能
Set<Map.Entry<K,V>> entrySet()
返回此映射中包含的映射关系的 Set 视图。
V get(Object key)
返回指定键所映射的值,如果此映射不包含该键的映射关系,则返回 null。 简而言之,根据键获取值。
Set<K> keySet()
返回此映射中包含的键的 Set 视图。简而言之,获取集合中所有键的集合。
Collection<V> values()
返回此映射中包含的值的 Collection 视图。简而言之,获取集合中所有值的集合。
- 长度功能
int size()
返回此映射中的键-值映射关系数。如果该映射包含多个 Integer.MAX_VALUE 元素,则返回 Integer.MAX_VALUE。 简而言之,返回集合中的键值对的个数。
举个例子
package com.guiyang.bean;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
public class Demo1_Map {
public static void main(String[] args) {
demo1();
System.out.println("--------");
demo2();
System.out.println("--------");
Map<String, Integer> map = new HashMap<>();
Integer i1 = map.put("Ada", 21);
Integer i2 = map.put("Petter", 20);
Integer i3 = map.put("Jack", 19);
Integer i4 = map.put("Black", 26);
Integer i5 = map.put("Jack", 20);
Collection<Integer> collection = map.values();
System.out.println(collection);
System.out.println(map.size());
}
private static void demo2() {
Map<String, Integer> map = new HashMap<>();
Integer i1 = map.put("Ada", 21);
Integer i2 = map.put("Petter", 20);
Integer i3 = map.put("Jack", 19);
Integer i4 = map.put("Black", 26);
Integer i5 = map.put("Jack", 20);
System.out.println(map.containsKey("Ada"));
System.out.println(map.containsValue(25));
}
private static void demo1() {
Map<String, Integer> map = new HashMap<>();
Integer i1 = map.put("Ada", 21);
Integer i2 = map.put("Petter", 20);
Integer i3 = map.put("Jack", 19);
Integer i4 = map.put("Black", 26);
Integer i5 = map.put("Jack", 20);
System.out.println(map);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
}
}
输出:
{Petter=20, Black=26, Jack=20, Ada=21}
null
null
null
null
19
--------
true
false
--------
[20, 26, 20, 21]
4