黑马程序员技术交流社区
标题:
Map一对多代码运行结果有点小问题,自己解决不了,求高人帮忙
[打印本页]
作者:
王利强
时间:
2012-3-18 18:16
标题:
Map一对多代码运行结果有点小问题,自己解决不了,求高人帮忙
代码如下,本来是想先打印一个班级名,然后打印班级里的学生。是班级名,学生,班级名,学生的格式,但运行后打印的是班级名,班级名,学生,学生的格式,看了半天,感觉代码没什么问题啊,求高人指点。
import java.util.*;
class student
{ private String id;
private String name;
student(String id,String name)
{
this.name=name;
this.id=id;
}
public String toString()
{
return id+":"+name;
}
}
class MapTest2
{ public static void main(String[] args)
{ Demo();
}
public static void Demo()
{HashMap<String,List<student>> czbk=new HashMap<String,List<student>>();
List<student> yure=new ArrayList<student>();
List<student> jiuye=new ArrayList<student>();
czbk.put("yureban:",yure);
czbk.put("jiuyeban:",jiuye);
yure.add(new student("01","zhagnsan"));
yure.add(new student("02","liai"));
yure.add(new student("03","qNFQU"));
yure.add(new student("01","zhagnsan1"));
yure.add(new student("02","SUNSAN"));
yure.add(new student("03","ZHAOLIU"));
Iterator<String> it=czbk.keySet().iterator();
while(it.hasNext())
{ String roomname=it.next();
List<student> room=czbk.get(roomname);
System.out.println(roomname);
getStudent(room);
}
}
public static void getStudent(List<student> list )
{ Iterator<student> it=list.iterator();
while(it.hasNext())
{
student s=it.next();
System.out.println(s);
}
}
}
作者:
段浩亮
时间:
2012-3-18 20:45
你把学生都添加到预热班里了,迭代时先得到就业班,就业班为空,什么都没打印,接着得到预热班,并打印里边的学生,所以打印结果是那样的
作者:
李爱军
时间:
2012-3-18 20:56
楼上说的很对啊,你把信息都加到 预热班里了,就业班为空啊,没有数据,自然没法打印了啊。
按下面的修改一下就好了
czbk.put("yureban:",yure);
czbk.put("jiuyeban:",jiuye);
jiuye.add(new student("01","zhagnsan"));
jiuye.add(new student("02","liai"));
yure.add(new student("03","qNFQU"));
yure.add(new student("01","zhagnsan1"));
yure.add(new student("02","SUNSAN"));
yure.add(new student("03","ZHAOLIU"));
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2