HashMap嵌套HashMap 的 案例

第一步:首先创建三个HashMap集合。

以学校制度为案例(学校 - 班级 - 学生):

HashMap<Student,String> hm1 = new HashMap<>();  //班级1;

hm1.put(new Student("xxx",x),"xxx"); //班级1中的学生;

HashMap<Student,String> hm2 = new HashMap<>();//班级2;

hm2.put(new Student("xxx",x),"xxx");// 班级2中的学生;

HashMap<HashMap<Student,String>,String> hm = new HashMap<>();//学校;

hm.put(hm1,"xxx"); //学校中的班级1;

hm.put(hm2,"xxx");//学校中的班级2;

第二步:通过双层嵌套增强for循环,将集合中的信息迭代出来。

for(HashMap<Student,String> newHm : hm.keyset() ){ //从学校中找出班级。

      String newClass = hm.get(newHm); //通过key键,在hm集合中获取value值,value值是学校名字。

     for(Student stu : newHm.keySet()){ //从班级中获取学生信息对象。

             String newClass1 = newHm.get(stu);

              System.out.println("姓名:"+stu.getName()+","+"年龄:"+stu.getAge()+","+"班级:"+newClass1+“学校:”+newClass);

      } 

}

详细代码如下:

Student.java

package com.demo.main;

public class Student {

	private String name ;
	private int age ;
	public Student() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Student(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + "]";
	}
}

Main.java

package com.demo.main;

import java.util.HashMap;

public class Main {

	public static void main(String[] args) {

		//班级1
		HashMap<Student,String> hm1 = new HashMap<>() ; 
		hm1.put(new Student("张三",13), "基础班1班");
		hm1.put(new Student("李四",14), "基础班1班");
		hm1.put(new Student("王五",15), "基础班1班")	;
		hm1.put(new Student("赵六",16), "基础班1班");
		//班级2
		HashMap<Student,String> hm2 = new HashMap<>() ;
		hm2.put(new Student("唐僧",1000),"基础班2班");
		hm2.put(new Student("孙悟空",1001),"基础班2班");
		hm2.put(new Student("猪八戒",1002),"基础班2班");
		hm2.put(new Student("沙僧",1003),"基础班2班");
		//学校
		HashMap<HashMap<Student,String>,String> hm = new HashMap<>() ; 
		hm.put(hm1, "第88期基础班");
		hm.put(hm2, "第99期基础班");
		for (HashMap<Student,String> newhm : hm.keySet()){
			//newhm 是 hm1,hm2 。
			String class1 = hm.get(newhm);//获取的hm1和hm2的值。 
			for(Student stu : newhm.keySet()){
				String class2 = newhm.get(stu);
				System.out.println("学生名字:"+stu.getName()+"   ,   "+"学生年龄:"+stu.getAge()+"   ,   "+"班级:"+class2+"   ,   "+"第几期:"+class1);
			}
		}
	}

}

以上就是HashMap嵌套HashMap的简单案例。

猜你喜欢

转载自blog.csdn.net/Ameir_yang/article/details/81453792