黑马程序员技术交流社区
标题:
迭代器问题
[打印本页]
作者:
李万海
时间:
2013-3-22 10:14
标题:
迭代器问题
本帖最后由 李万海 于 2013-3-22 16:45 编辑
import java.util.*;
class Student implements Comparable<Student>
{
private String name;
private int age;
Student(String name,int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
public int hashCode()
{
return this.name.hashCode()+this.age*13;
}
public boolean equals(Object obj)
{
if (!(obj instanceof Student))
{
throw new ClassCastException("不是同一类");
}
Student stu = (Student)obj;
return this.name.equals(stu.name) && this.age == stu.age;
}
public int compareTo(Student stu)
{
int num = this.name.compareTo(stu.name);
if (num == 0)
{
return new Integer(this.age).compareTo(new Integer(stu.age));
}
return num;
}
}
class Exercise4
{
public static void main(String[] args)
{
//建立集合这个集合里面是教室和学生对象
TreeMap<String,Student> classes = new TreeMap<String,Student>();
classes.put("Base",new Student("ZhanSan",18));
classes.put("Base",new Student("LiSi",22));
classes.put("Adv",new Student("Wangwu",25));
classes.put("Adv",new Student("ZhaoLiu",22));
//取出教室与学生的关系
Set<Map.Entry<String,Student>> es = classes.entrySet();
for (Iterator<Map.Entry<String,Student>> it = es.iterator();it.hasNext() ; )
{
Map.Entry<String,Student> me = it.next();
//取出教室,并打印
System.out.println(me.getKey());
//如何使用迭代器取出教室里的学生?
}
}
}
复制代码
存入学生对象(成员有name和age),要求对应所在班级存储,
如何使用迭代器取出教室里的学生?
作者:
陈腾跃_2013
时间:
2013-3-22 10:37
本帖最后由 陈腾跃_2013 于 2013-3-22 11:03 编辑
有getValue方法呀!而且TreeMap的key是不允许重复的,这样存储信息都被覆盖了。
建议将学生分别存入个两集合中,分别叫adv和base,然后再将这两个集合存入TreeMap中。
(每次编辑后代码格式又乱了,重新贴在下面吧)
作者:
陈腾跃_2013
时间:
2013-3-22 10:38
for (Iterator<Map.Entry<String, Student>> it = es.iterator(); it
.hasNext();)
{
Map.Entry<String, Student> me = it.next();
// 取出教室,并打印
System.out.println(me.getKey());
// 如何使用迭代器取出教室里的学生?
System.out.println(me.getValue().getName() + "|"
+ me.getValue().getAge());
}
复制代码
作者:
陈丽莉
时间:
2013-3-22 15:59
记得及时处理帖子哦,继续追问,或将分类改成【已解决】~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2