码迷,mamicode.com
首页 > 其他好文 > 详细

hashmap的嵌套,存储一个自定义类

时间:2018-05-13 13:54:01      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:rgs   main   dem   etag   setname   his   添加   ash   shm   

hashmap的嵌套,存储一个自定义类

/*
* hashmap的嵌套,存储一个自定义类
*
*分析:
* 1.创建一个hashmap,且它的键和值的其中一个也是hashmap
* 2.创建两个hashmap,它的键 是自定义类Student
* 3.创建Student对象,并分别向第二步的两个hashmap添加
* 4.分两种方法遍历输出
*/

 

自定义类:

public class Student {
	
	private String name;
	private int age;
	public Student() {
		super();
	}
	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 + "]";
	}

	
	

}

  hashmap类:

import java.util.Collection;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
/**
 * hashmap的嵌套
 * @author ma
 *
 */
public class HashMapDemo6 {
	/*
	 * hashmap的嵌套,存储一个自定义类
	 * 
	 *分析:
	 *	1.创建一个hashmap,且它的键和值的其中一个也是hashmap
	 *	2.创建两个hashmap,它的键 是自定义类Student
	 *	3.创建Student对象,并分别向第二步的两个hashmap添加
	 *	4.分两种方法遍历输出
	 */
	
	public static void main(String[] args) {
		
		//声明一个嵌套的hashmap对象hmhm
		HashMap<String, HashMap<Student, String>> hmhm = new HashMap<String, HashMap<Student,String>>();
		
		//声明一个hashmap对象hm1
		HashMap<Student, String> hm1 = new HashMap<Student, String>();
		
		//声明两个学生对象
		Student s1 = new Student("张三",1);
		Student s2 = new Student("李四",2);
		
		//把对象放入hm1
		hm1.put(s1, "1");
		hm1.put(s2, "2");
		
		//声明一个hashmap对象hm2
		HashMap<Student, String> hm2 = new HashMap<Student, String>();
		
		//声明两个学生对象
		Student s3 = new Student("赵大",3);
		Student s4 = new Student("王二",4);
		
		//把对象放入hm2
		hm1.put(s3, "3");
		hm1.put(s4, "4");
		
		//把hm1和hm2放入hmhm
		hmhm.put("1", hm1);
		hmhm.put("2", hm2);
		
		//遍历输出1
		Set<Entry<String, HashMap<Student, String>>> set = hmhm.entrySet();
		for (Entry<String, HashMap<Student, String>> entry : set) {
			
			Set<Entry<Student, String>> entry1 = entry.getValue().entrySet();
			for (Entry<Student, String> entry2 : entry1) {
				System.out.println(entry2);
			}
		}
		
		System.out.println("-------------------------------------------------");
		
		//遍历输出2
		Collection<HashMap<Student, String>> collection = hmhm.values();
		for (HashMap<Student, String> hashMap : collection) {
				
				for(Student s : hashMap.keySet()){
					System.out.println(s);
				}
		}
		
	}
	
}

  输出结果:

    Student [name=李四, age=2]=2
    Student [name=王二, age=4]=4
    Student [name=赵大, age=3]=3
    Student [name=张三, age=1]=1
-------------------------------------------------
    Student [name=李四, age=2]
    Student [name=王二, age=4]
    Student [name=赵大, age=3]
    Student [name=张三, age=1]

hashmap的嵌套,存储一个自定义类

标签:rgs   main   dem   etag   setname   his   添加   ash   shm   

原文地址:https://www.cnblogs.com/majingang/p/9031642.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!