在java中,Map集合都是是双列集合,即存在一个键值对,通过键来定位值。
Map是双列集合的顶层接口,Map中所有的功能,双列集合的实现(比如HashMap)都可以使用。
Map存储在java.util下,使用前需要导包。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
}
}
Map<String, String> map = new HashMap<String, String>();,尖括号中表明的是键值的数据类型,在这段代码中,键是字符串,值也是字符串。和List一样的是,在JDK7之前,需要书写两次键值的数据类型,而在JDK7之后,可以只书写前面的,比如Map<String, String> map = new HashMap<>();。
Map集合的常见Api
| 方法名称 | 说明 |
V put(K key, V value) |
添加/修改元素(一对键值对) |
V remove(Object key) |
删除元素(根据键值删除一对元素) |
void clear() |
移除全部键值对 |
boolean containsKey(Object key) |
判断是否存在指定的键 |
boolean containsValue(Object value) |
判断是否存在指定的值 |
boolean isEmpty() |
判断集合是否为空 |
int size() |
获取集合的长度,也就是集合中键值对的个数 |
V put(K key, V value) :添加/修改元素(一对键值对)
函数put使用的时候是:<集合名称>.put(<键>, <值>),可以新增元素或者修改元素,存在返回值,返回值的数据类型为值的数据类型,如果是添加元素则默认返回null,修改键值对的值,则返回被修改之前的值。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 使用V put(K key, V value)添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
// 3. 打印集合
System.out.println(map);
// 4. put方法存在返回值,返回值为 键值对中值的数据类型
// 如果是新增键值对,则返回null,
System.out.println(map.put("Laffey", "不是猫"));
// 如果是修改键值对的值,则返回被修改之前的值
System.out.println(map.put("Laffey", "RBQ"));
}
}
代码含义:
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");-> 对map新增两条数据,第一条键是LinCat、值是坏猫;第二条键是BingCat、值是好猫;-
System.out.println(map);-> 打印集合map,返回值形如Key=Value,在这里应该返回如下: -
System.out.println(map.put("Laffey", "不是猫"));-> 打印新增一个键值对的返回值,对于put方法,新增键值的时候统一返回null,无论值的数据类型。 -
System.out.println(map.put("Laffey", "RBQ"));-> 打印修改一个值的返回值,使用put方法,在修改键值对值的时候,返回的是被修改的原始数据的值,数据类型是键值对中值的数据类型。
所以总的运行结果是:

需要注意的是, HashMap是无序,所以直接打印HashMap的对象时,输出顺序可能和输入顺序不一致。
V remove(Object key):删除元素(根据键值删除一对元素)
函数remove使用的时候是:<集合名称>.remove(<键>),用于通过键来删除一对键值对,存在返回值,返回值的数据类型为值的数据类型,如果无效的删除则会返回null,否则返回被删除键值对的值。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
// 3. 使用 V remove(Object key) 通过键删除一对数据
map.remove("LinCat");
System.out.println(map.remove("BingCat"));
System.out.println(map.remove("BingCat"));
}
}
代码含义:
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对map.remove("LinCat");-> 移除键值为LinCat的键值对System.out.println(map.remove("BingCat"));-> 打印删除键值对的返回结果,对于remove方法,返回值是被删除键值对的值。重复删除或者删除一个不存在的键,则统一返回null。
运行结果:

void clear():移除全部键值对
函数clear使用的时候是:<集合名称>.clear(),用于移除全部键值对,没有返回。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
System.out.println(map);
// 3. 使用 void clear() 清空全部键值对
map.clear();
System.out.println(map);
}
}
代码含义:
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对System.out.println(map);-> 打印集合mapmap.clear();-> 清空全部键值对

boolean containsKey(Object key):判断是否存在指定的键
函数containsKey使用的时候是:<集合名称>.containsKey(<键>),返回值是布尔类型。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
// 3. 使用 boolean containsKey(Object key) 判断是否存在指定的键
// 查找一个存在的键
System.out.println(map.containsKey("LinCat"));
// 查找一个不存在的键
System.out.println(map.containsKey("CatHouse"));
}
}
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对System.out.println(map.containsKey("LinCat"));、System.out.println(map.containsKey("CatHouse"));-> 打印查找键是否存在
运行结果:

boolean containsValue(Object value):判断是否存在指定的值
函数containsValue使用的时候是:<集合名称>.containsValue(<值>),返回值是布尔类型。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
// 3. 使用 boolean containsValue(Object key) 判断是否存在指定的值
// 查找一个存在的值
System.out.println(map.containsValue("好猫"));
// 查找一个不存在的值
System.out.println(map.containsValue("超级大好猫"));
}
}
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对System.out.println(map.containsValue("好猫"));、System.out.println(map.containsValue("超级大好猫"));-> 打印查找键是否存在
运行结果:

boolean isEmpty():判断集合是否为空
函数isEmpty使用的时候是:<集合名称>.isEmpty(),返回值是布尔类型。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
// 3. 使用 boolean isEmpty() 判断集合是否为空
System.out.println(map.isEmpty());
}
}
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对System.out.println(map.isEmpty());-> 打印查找集合是否为空

int size():获取集合的长度,也就是集合中键值对的个数
函数size使用的时候是:<集合名称>.size(),返回值是int类型。
import java.util.HashMap;
import java.util.Map;
public class mapDemo {
public static void main(String[] args) {
// 1. 创建Map
Map<String, String> map = new HashMap<String, String>();
// 2. 添加键值对
map.put("LinCat", "坏猫");
map.put("BingCat", "好猫");
map.put("Laffey", "RBQ");
// 3. 使用 int size() 输出集合长度
System.out.println(map.size());
}
}
Map<String, String> map = new HashMap<String, String>();-> 创建Map集合map.put("LinCat", "坏猫");、map.put("BingCat", "好猫");、map.put("Laffey", "RBQ");-> 添加键值对System.out.println(map.size());-> 输出集合长度

函数remove使用的时候是:<集合名称>.remove(<键>),用于通过键来删除一对键值对,存在返回值,返回值的数据类型为值的数据类型,如果无效的删除则会返回null,否则返回被删除键值对的值。


