將兩個Map集合,存入到一個Map集合中(有兩個班,1班、2班,每個班裏又各有兩個學生,學生屬性有name、age)

package Day18;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

/*
 * 班級
 *  1班
 *     學生1name,age
 *  2班 
 *     學生2name,age
 * */
public class Class2 {
 private static Entry<String, Map> entry;

public static void main(String[] args) {
    Map<Integer,Student1> map1=new HashMap();
    map1.put(1,new Student1("小石",32));
    map1.put(2,new Student1("hahh",44));
    Map<Integer,Student1> map2=new HashMap();
    map2.put(1,new Student1("哈哈",22));
    map2.put(2,new Student1("額額",14));
    //創建大Map集合,保存map1,map2
    Map<String,Map> map=new HashMap();//大map
    map.put("1班", map1);
    map.put("2班",map2);
    //keySet1(map);
    //keySetfor(map);
    //entrySet1(map);
    //entrySet方法的增強for
    for(Map.Entry<String, Map> entry:map.entrySet()) {
        //獲取大Map的值,就是小Map
        Map<Integer,Student1> m=entry.getValue();
        //打印班級
        System.out.println(entry.getKey());
        for(Map.Entry<Integer, Student1> entry1:m.entrySet()) {
            System.out.println(entry1.getKey());
            System.out.println(entry1.getValue().getName());
            System.out.println(entry1.getValue().getAge());
        }
    }
 }

private static void entrySet1(Map<String, Map> map) {
    //entrySet()方法
    Set<Map.Entry<String,Map>> s=map.entrySet();
    //獲取大Map的迭代器
    Iterator<Map.Entry<String, Map>>i=s.iterator();
    while(i.hasNext()) {
    //獲取大map鍵和值的關係
      Map.Entry<String,Map> m=i.next();
      //輸出大Map的鍵
      System.out.println(m.getKey());
      //獲取大Map的值,也就是小Map
      Map<Integer,Student1> map_x=m.getValue();
      Set<Map.Entry<Integer, Student1>> s1=map_x.entrySet();
      Iterator<Map.Entry<Integer, Student1>> it1=s1.iterator();
      while(it1.hasNext()) {
          Map.Entry<Integer, Student1> m1=it1.next();
          System.out.println(m1.getKey());
          System.out.println(m1.getValue().getName());
          System.out.println(m1.getValue().getAge());
      }
    }
}

private static void keySetfor(Map<String, Map> map) {
    //keyset的增強for循環
    for (String key : map.keySet()) {
        //打印班級
        System.out.println(key);
        Map<Integer,Student1> map_x=map.get(key);
        for (Integer key1 : map_x.keySet()) {
            //打印學生
            System.out.println(map_x.get(key1).getName());
            System.out.println(map_x.get(key1).getAge());
        }
    }
}

private static void keySet1(Map<String, Map> map) {
    //使用keySet()方法
    Set<String> s=map.keySet();
    //獲取迭代器
    Iterator<String> it=s.iterator();
    while(it.hasNext()) {
        //獲取大Map所有的鍵
        String str=it.next();
        //打印班級
        System.out.println(str);
        //通過大Map鍵找到值(值就是小Map)
        Map<Integer,Student1> map_x=map.get(str);
        //獲取小map的鍵
        Set<Integer> s1=map_x.keySet();
        //迭代器
        Iterator<Integer> it1=s1.iterator();
        while(it1.hasNext()) {
            Integer in=it1.next();
            System.out.println(map_x.get(in).getName());
            System.out.println(map_x.get(in).getAge());
        }
    }
}
}


Student1.java

package Day18;

public class Student1 {
  private String name;
  private int age;
public Student1() {
    super();
    // TODO Auto-generated constructor stub
}
public Student1(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 int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + age;
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    return result;
}
@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    Student1 other = (Student1) obj;
    if (age != other.age)
        return false;
    if (name == null) {
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))
        return false;
    return true;
}
@Override
public String toString() {
    return "Student1 [name=" + name + ", age=" + age + "]";
}
  
}
結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章