目录
集合的嵌套
- 顾名思义,指的是集合中的元素又是一个集合。
本篇通过一个案例对这一知识进行了解:
案例引入
需求与分析
- 要求在程序中记住如下省份和其对应的城市信息,记录成功后,要求可以查询出湖北省的城市信息。
江苏省 = 南京市,扬州市,苏州市,无锡市,常州市
湖北省 = 武汉市,孝感市,十堰市,宜昌市,鄂州市
河北省 = 石家庄市,唐山市,邢台市,保定市,张家口市
分析
- 定义一个Map集合,键表示省份名称,值表示城市名称,注意:城市会有多个。
- 根据“湖北省”这个键获取对应的值进行展示即可。
问题解决
package user.Map;
import java.util.*;
public class Test {
public static void main(String[] args){
//1.定义一个Map集合,键表示省份名称,值表示城市名称,注意:城市会有多个。
Map<String, List<String>> map = new HashMap<>();
List<String> cities1 = new ArrayList<>();
Collections.addAll(cities1,"南京市","扬州市","苏州市","无锡市","常州市");
map.put("江苏省",cities1);
List<String> cities2 = new ArrayList<>();
Collections.addAll(cities2,"武汉市","孝感市","十堰市","宜昌市","鄂州市");
map.put("湖北省",cities2);
List<String> cities3 = new ArrayList<>();
Collections.addAll(cities3,"石家庄市","唐山市","邢台市","保定市","张家口市");
map.put("河北省",cities3);
System.out.println(map);
System.out.println("--------------");
//2.展示湖北省的城市
List<String> cities = map.get("湖北省");
for(String city : cities){
System.out.println(city);
}
System.out.println("--------------");
//3.遍历整个Map集合
map.forEach((p,c)-> System.out.println(p + "-------->" + c));
}
}
第一部分确认将所有城市都写进了Map集合中:
第二部分查询湖北省的城市:
运行测试
也可以对Map整个集合进行遍历:
运行结果:
关于Map集合的部分暂时就结束了,接下来将会介绍JDK8的新特性——Stream流。
END
学习自:黑马程序员——JavaSE课程