java中map集合嵌套形式简单示例

package day05;
import java.util.*;

import day02.Sop;

定义了一个学生类,封装了id和name属性,提供一个全参构造器,并复写toSting方法

class Student{
private String id;

private String name;


Student(String id,String name){
this.id=id;
this.name=name;

}


public String toString(){
return id+"::"+name;
}
}

Map map集合是以键值对存储的,其中的键值也可以是集合,这样就出现了集合嵌套形式如:Map>;Map>

需求是传智播客的学校有就业班和预热班,每个类型的班级里有自己的学员的学号和姓名,要求进行遍历输出班级类型和学员信息:

class MapDemo {
public static void main(String[] args) {
Map> czbk=new HashMap>();//定义一个map集合,其中键是String类型,值是List集合(list集合中存储的是学生类型的元素)
List yureban=new ArrayList();//定义预热班集合

List jiuyeban=new ArrayList();//定义就业办集合

//向czbk  Map集合中存入元素

czbk.put("yureban", yureban);

czbk.put("jiuyeban", jiuyeban);

//分别向预热班和就业班中存入元素

yureban.add(new Student("01","wuji"));
yureban.add(new Student("02","zhangmin"));
jiuyeban.add(new Student("01","damo"));

jiuyeban.add(new Student("02","zushi"));

获取czbk中的键值,通过第一次循环获取键所对应的班级集合,在通过遍历班级集合来获取集合中的学生信息,通过两次while循环输入班级类型和学生信息

Iterator it=czbk.keySet().iterator();
while(it.hasNext()){
String roomName=it.next();
List banji=czbk.get(roomName);
Iterator iter=banji.iterator();
while(iter.hasNext()){
Student stu=iter.next();
Sop.sop(roomName+"  "+stu.toString());
}
}


/*

//该处代码与上面的功能一致,是在map集合中再嵌套一个map集合,并通过两次while循环获取班级类型和学生信息

Map> map=new HashMap>();
Map yure=new HashMap();
Map jiuye=new HashMap();
map.put("yureban", yure);
map.put("jiuyeban", jiuye);
yure.put("01", "zhangsan");
yure.put("02", "lisi");
jiuye.put("01"," wangwu");
jiuye.put("02", "zhaoliu");

Iterator it=map.keySet().iterator();
while(it.hasNext()){
String nameRoom=it.next();
Map nameMap=map.get(nameRoom);
Iterator> iter=nameMap.entrySet().iterator();
while(iter.hasNext()){
Map.Entry me=iter.next();
String id=me.getKey();
String name=me.getValue();
Sop.sop(nameRoom+"id: "+id+" name:"+name);
}
}
*/
}
}

你可能感兴趣的:(学习中,hashmap,iterator,java,map,遍历)