您的位置:首页 > 编程语言 > Java开发

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

2015-11-10 14:35 627 查看
定义了一个学生类,封装了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<key,value> map集合是以键值对存储的,其中的键值也可以是集合,这样就出现了集合嵌套形式如:Map<String,Map<String,String>>;Map<String,List<Student>>
需求是传智播客的学校有就业班和预热班,每个类型的班级里有自己的学员的学号和姓名,要求进行遍历输出班级类型和学员信息:
class MapDemo {
public static void main(String[] args) {
Map<String,List<Student>> czbk=new HashMap<String,List<Student>>();//定义一个map集合,其中键是String类型,值是List集合(list集合中存储的是学生类型的元素)
List<Student> yureban=new ArrayList<Student>();//定义预热班集合
List<Student> jiuyeban=new ArrayList<Student>();//定义就业办集合
//向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<String> it=czbk.keySet().iterator();
while(it.hasNext()){
String roomName=it.next();
List<Student> banji=czbk.get(roomName);
Iterator<Student> iter=banji.iterator();
while(iter.hasNext()){
Student stu=iter.next();
Sop.sop(roomName+"  "+stu.toString());
}
}

/*
//该处代码与上面的功能一致,是在map集合中再嵌套一个map集合,并通过两次while循环获取班级类型和学生信息
Map<String,Map<String,String>> map=new HashMap<String,Map<String,String>>();
Map<String,String> yure=new HashMap<String,String>();
Map<String,String> jiuye=new HashMap<String,String>();
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<String> it=map.keySet().iterator();
while(it.hasNext()){
String nameRoom=it.next();
Map<String,String> nameMap=map.get(nameRoom);
Iterator<Map.Entry<String, String>> iter=nameMap.entrySet().iterator();
while(iter.hasNext()){
Map.Entry<String, String> me=iter.next();
String id=me.getKey();
String name=me.getValue();
Sop.sop(nameRoom+"id: "+id+" name:"+name);
}
}
*/
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  map