编写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的值
          }
        }
      }
    }
}
相关文章
|
20天前
|
算法
你对Collection中Set、List、Map理解?
你对Collection中Set、List、Map理解?
55 18
你对Collection中Set、List、Map理解?
|
14天前
|
存储 缓存 安全
只会“有序无序”?面试官嫌弃的List、Set、Map回答!
小米,一位热衷于技术分享的程序员,通过与朋友小林的对话,详细解析了Java面试中常见的List、Set、Map三者之间的区别,不仅涵盖了它们的基本特性,还深入探讨了各自的实现原理及应用场景,帮助面试者更好地准备相关问题。
51 20
|
13天前
|
存储 缓存 安全
Java 集合江湖:底层数据结构的大揭秘!
小米是一位热爱技术分享的程序员,本文详细解析了Java面试中常见的List、Set、Map的区别。不仅介绍了它们的基本特性和实现类,还深入探讨了各自的使用场景和面试技巧,帮助读者更好地理解和应对相关问题。
33 5
|
26天前
|
存储 缓存 安全
Java 集合框架优化:从基础到高级应用
《Java集合框架优化:从基础到高级应用》深入解析Java集合框架的核心原理与优化技巧,涵盖列表、集合、映射等常用数据结构,结合实际案例,指导开发者高效使用和优化Java集合。
37 4
|
1月前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
33 2
|
1月前
|
存储 Java
判断一个元素是否在 Java 中的 Set 集合中
【10月更文挑战第30天】使用`contains()`方法可以方便快捷地判断一个元素是否在Java中的`Set`集合中,但对于自定义对象,需要注意重写`equals()`方法以确保正确的判断结果,同时根据具体的性能需求选择合适的`Set`实现类。
|
1月前
|
安全 Java
Java多线程集合类
本文介绍了Java中线程安全的问题及解决方案。通过示例代码展示了使用`CopyOnWriteArrayList`、`CopyOnWriteArraySet`和`ConcurrentHashMap`来解决多线程环境下集合操作的线程安全问题。这些类通过不同的机制确保了线程安全,提高了并发性能。
|
1月前
|
存储 Java 开发者
在 Java 中,如何遍历一个 Set 集合?
【10月更文挑战第30天】开发者可以根据具体的需求和代码风格选择合适的遍历方式。增强for循环简洁直观,适用于大多数简单的遍历场景;迭代器则更加灵活,可在遍历过程中进行更多复杂的操作;而Lambda表达式和`forEach`方法则提供了一种更简洁的函数式编程风格的遍历方式。
|
1月前
|
Java 开发者
|
1月前
|
存储 Java 开发者
Java中的集合框架深入解析
【10月更文挑战第32天】本文旨在为读者揭开Java集合框架的神秘面纱,通过深入浅出的方式介绍其内部结构与运作机制。我们将从集合框架的设计哲学出发,探讨其如何影响我们的编程实践,并配以代码示例,展示如何在真实场景中应用这些知识。无论你是Java新手还是资深开发者,这篇文章都将为你提供新的视角和实用技巧。
34 0