编写Java程序,以树形结构显示国家-直辖市/省/州信息

简介: 编写Java程序,以树形结构显示国家-直辖市/省/州信息

需求说明:


以树形结构显示国家-直辖市/省/州信息    


20.png


实现思路:


创建显示树形结构的类Tree,在该类中定义Map类型的全局实例属性countryMap,该Map集合用于存放所有国家与其管辖的直辖市/省/州之间的映射关系。其中key为String类型,代表“国家”数据,value为List集合对象,该集合存放String类型的“直辖市/省/州”数据。


生成countryMap对象


Map<String,List<String>> countryMap= new HashMap<String,List<String>>();


往countryMap对象添加映射对数据


countryMap.put("中国", chinaProvince);


实现代码:

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月前
|
Java 流计算
利用java8 的 CompletableFuture 优化 Flink 程序
本文探讨了Flink使用avatorscript脚本语言时遇到的性能瓶颈,并通过CompletableFuture优化代码,显著提升了Flink的QPS。文中详细介绍了avatorscript的使用方法,包括自定义函数、从Map中取值、使用Java工具类及AviatorScript函数等,帮助读者更好地理解和应用avatorscript。
利用java8 的 CompletableFuture 优化 Flink 程序
|
10天前
|
监控 JavaScript 数据可视化
建筑施工一体化信息管理平台源码,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
智慧工地云平台是专为建筑施工领域打造的一体化信息管理平台,利用大数据、云计算、物联网等技术,实现施工区域各系统数据汇总与可视化管理。平台涵盖人员、设备、物料、环境等关键因素的实时监控与数据分析,提供远程指挥、决策支持等功能,提升工作效率,促进产业信息化发展。系统由PC端、APP移动端及项目、监管、数据屏三大平台组成,支持微服务架构,采用Java、Spring Cloud、Vue等技术开发。
|
2月前
|
SQL Java
使用java在未知表字段情况下通过sql查询信息
使用java在未知表字段情况下通过sql查询信息
45 8
|
2月前
|
SQL 安全 Java
Java 异常处理:筑牢程序稳定性的 “安全网”
本文深入探讨Java异常处理,涵盖异常的基础分类、处理机制及最佳实践。从`Error`与`Exception`的区分,到`try-catch-finally`和`throws`的运用,再到自定义异常的设计,全面解析如何有效管理程序中的异常情况,提升代码的健壮性和可维护性。通过实例代码,帮助开发者掌握异常处理技巧,确保程序稳定运行。
58 1
|
2月前
|
IDE Java 编译器
开发 Java 程序一定要安装 JDK 吗
开发Java程序通常需要安装JDK(Java Development Kit),因为它包含了编译、运行和调试Java程序所需的各种工具和环境。不过,某些集成开发环境(IDE)可能内置了JDK,或可使用在线Java编辑器,无需单独安装。
103 1
|
2月前
|
人工智能 监控 数据可视化
Java智慧工地信息管理平台源码 智慧工地信息化解决方案SaaS源码 支持二次开发
智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需求,满足工地多角色、多视角的有效监管,实现工程建设管理的降本增效,为监管平台提供数据支撑。
57 3
|
2月前
|
Java 编译器 开发者
Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面
本文探讨了Java异常处理的最佳实践,涵盖理解异常类体系、选择合适的异常类型、提供详细异常信息、合理使用try-catch和finally语句、使用try-with-resources、记录异常信息等方面,帮助开发者提高代码质量和程序的健壮性。
95 2
|
3月前
|
Java Maven 数据安全/隐私保护
如何实现Java打包程序的加密代码混淆,避免被反编译?
【10月更文挑战第15天】如何实现Java打包程序的加密代码混淆,避免被反编译?
565 2
|
3月前
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
189 1
|
3月前
|
运维 Java Linux
【运维基础知识】Linux服务器下手写启停Java程序脚本start.sh stop.sh及详细说明
### 启动Java程序脚本 `start.sh` 此脚本用于启动一个Java程序,设置JVM字符集为GBK,最大堆内存为3000M,并将程序的日志输出到`output.log`文件中,同时在后台运行。 ### 停止Java程序脚本 `stop.sh` 此脚本用于停止指定名称的服务(如`QuoteServer`),通过查找并终止该服务的Java进程,输出操作结果以确认是否成功。
104 1