前面我们介绍了Collection集合家族的体系,那么今天我们来介绍一下与之地位相同的Map集合家族的体系。
1、Map集合的体系:
2、 Map是其他集合的祖宗接口,以下方法其他所有集合都可以使用:
3、HashMap、LinkedHashMap
以下为HashMap和LinkedHashMap的示例,以及方法举例:
package Power_demo.Collection_demoC;
import java.util.*;
public class Map_demo9 {
public static void main(String[] args) {
// HashMap:无序,不重复,无索引(与HashSet相同)
Map<String,Integer> map1 = new HashMap<>(); //经典代码
map1.put("Jerry",18);
map1.put("Wendy",20);
map1.put("Jerry",19); //不允许出现重复键,重复的键会覆盖原有的键和值。
map1.put("Tom",20);
map1.put(null,null);
System.out.println(map1); //{null=null, Tom=20, Jerry=19, Wendy=20}
// LinkedHashMap:有序,不重复,无索引(与LinkedHashSet相同)
Map<String,Integer> map2 = new LinkedHashMap<>();
map2.put("Jerry",18);
map2.put("Wendy",20);
map2.put("Tom",20);
map2.put(null,null);
System.out.println(map2); //{Jerry=18, Wendy=20, Tom=20, null=null}
System.out.println(map1.size());
System.out.println(map1.isEmpty());
System.out.println(map1.get("Jerry"));
System.out.println(map1.get("Jerry2"));
map1.remove(null);
System.out.println(map1);
//获取键
Set<String> keys = map1.keySet();
for (String key : keys) {
System.out.println(key);
}
//获取值
Collection<Integer> values = map1.values();
for (Integer value : values) {
System.out.println(value);
}
}
}
4、Map集合的遍历
那么Map集合该如何遍历呢? 有三种方法,一种是键找值,一种是键值对,一种是lambda表达式。
示例代码如下:
package Power_demo.Collection_demoC;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class Map_Traverse_demo10 {
public static void main(String[] args) {
Map<String,Integer> map1 = new HashMap<>();
map1.put("Jerry",18);
map1.put("Wendy",20);
map1.put("Tom",20);
System.out.println(map1); //{Tom=20, Jerry=18, Wendy=20}
//Map集合的遍历方式:
//方式一:键找值
Set<String> keys = map1.keySet();
for(String key : keys){
Integer value = map1.get(key);
System.out.println(key +"="+ value);
}
//方式二:键值对
Set<Map.Entry<String, Integer>> entries = map1.entrySet();
for (Map.Entry<String, Integer> entry : entries) {
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + "=" + value);
}
//方式三:lambda表达式
map1.forEach((key,value)-> System.out.println(key + "=" + value));
}
}