编写Java程序,使用List集合和Map集合输出 市和区

简介: 编写Java程序,使用List集合和Map集合输出 市和区

如图:


16.png


代码:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class Test1 {
    public static void main(String[] args) {
      //云南省的 - 市
      ArrayList<String> ynCity = new ArrayList<>();
      ynCity.add("昆明市");
      ynCity.add("昭通市");
      ynCity.add("大理市");
      ynCity.add("丽江市");
      //湖南省的 - 市
      ArrayList<String> hnCity = new ArrayList<>();
      hnCity.add("长沙市");
      hnCity.add("岳阳市");
      hnCity.add("常德市");
      hnCity.add("永州市");
      //将市 和 区 存入Map集合
      HashMap<String, ArrayList<String>> provinceCity = new HashMap<String, ArrayList<String>>();
      provinceCity.put("云南省",ynCity);
      provinceCity.put("湖南省",hnCity);
      //将省和市存入countries Map集合中
      HashMap<String, HashMap<String,ArrayList<String>>> countries = new HashMap<String,HashMap<String,ArrayList<String>>>();
      countries.put("中国",provinceCity);
//      countries.put("美国",provinceCity);//这里只写了中国的省和市这行注释掉
      Set<String> countriesMapkey = countries.keySet();//得到Map 集合 countries的键 存入countriesMapkey中
      Iterator it1 = countriesMapkey.iterator();//用键创建一个迭代器
      while (it1.hasNext()) {
        Object countriesMapkeys = it1.next();//遍历得到键集合存入countriesMapkeys
        System.out.println(countriesMapkeys);
        HashMap<String, ArrayList<String>> countriesMapValue = countries.get(countriesMapkeys);//得到键集合对应的值存入countriesMapValue
        Set<String> provinceCityMapKey = countriesMapValue.keySet();//得到Map集合中provinceCity的键
        Iterator it2 =  provinceCityMapKey.iterator();//创建一个迭代器
        while (it2.hasNext()) {
          Object provinceCityMapKeys = it2.next();//得到Map 集合 provinceCity的键 存入countriesMapkey中
          System.out.println("    "+provinceCityMapKeys);
          ArrayList<String> provinceCityValue = provinceCity.get(provinceCityMapKeys);//得到provinceCity的键对应的值集合
          for (int i = 0; i < provinceCityValue.size(); i++) {
            System.out.println("        "+provinceCityValue.get(i));//循环输出provinceCity的值
          }
        }
      }
    }
}
相关文章
|
3月前
|
安全
List集合特有功能
List集合特有功能
38 2
|
14天前
|
安全 Java 程序员
深入Java集合框架:解密List的Fail-Fast与Fail-Safe机制
本文介绍了 Java 中 List 的遍历和删除操作,重点讨论了快速失败(fail-fast)和安全失败(fail-safe)机制。通过普通 for 循环、迭代器和 foreach 循环的对比,详细解释了各种方法的优缺点及适用场景,特别是在多线程环境下的表现。最后推荐了适合高并发场景的 fail-safe 容器,如 CopyOnWriteArrayList 和 ConcurrentHashMap。
43 5
|
30天前
|
存储 分布式计算 NoSQL
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
大数据-40 Redis 类型集合 string list set sorted hash 指令列表 执行结果 附截图
24 3
|
2月前
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
20 3
|
2月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
2月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
1月前
|
存储 分布式计算 Java
Stream很好,Map很酷,但答应我别用toMap():Java开发中的高效集合操作
在Java的世界里,Stream API和Map集合无疑是两大强大的工具,它们极大地简化了数据处理和集合操作的复杂度。然而,在享受这些便利的同时,我们也应当警惕一些潜在的陷阱,尤其是当Stream与Map结合使用时。本文将深入探讨Stream与Map的优雅用法,并特别指出在使用toMap()方法时需要注意的问题,旨在帮助大家在工作中更高效、更安全地使用这些技术。
35 0
|
3月前
|
Java
用JAVA架建List集合为树形结构的代码方法
这段代码定义了一个表示树形结构的 `Node` 类和一个用于构建树形结构的 `TreeController`。`Node` 类包含基本属性如 `id`、`pid`、`name` 和 `type`,以及子节点列表 `children`。`TreeController` 包含初始化节点列表并将其转换为树形结构的方法。通过过滤和分组操作实现树形结构的构建。详情可见:[代码示例链接1](http://www.zidongmutanji.com/zsjx/43551.html),[代码效果参考链接2](https://www.257342.com/sitemap/post.html)。
40 5
|
3月前
|
存储 安全 Java
【Java集合类面试二十五】、有哪些线程安全的List?
线程安全的List包括Vector、Collections.SynchronizedList和CopyOnWriteArrayList,其中CopyOnWriteArrayList通过复制底层数组实现写操作,提供了最优的线程安全性能。
|
3月前
|
Java
【Java集合类面试二十三】、List和Set有什么区别?
List和Set的主要区别在于List是一个有序且允许元素重复的集合,而Set是一个无序且元素不重复的集合。