黑马程序员技术交流社区
标题:
高级for循环问题
[打印本页]
作者:
盛亚昆
时间:
2012-3-30 01:33
标题:
高级for循环问题
class MapTest2
{
public static void main(String[] args)
{
TreeMap<Student,String>tm = new TreeMap<Student,String>(new StuNameComparator());
tm.put(new Student("zsi1",25),"beijing");
tm.put(new Student("wisi1",21),"ng");
tm.put(new Student("sisi2",28),"jing");
tm.put(new Student("aisi3",29),"bei");
tm.put(new Student("aisi3",29),"shangg");//相同了,判断全部一样,就替代原有的value
tm.put(new Student("csi4",24),"beng");
Set<Map.Entry<Student,String>>entry=tm.entrySet();
Iterator<Map.Entry<Student,String>>it=entry.iterator();
while (it.hasNext())
{
Map.Entry<Student,String>me=it.next();
Student stu=me.getKey();
String addr=me.getValue();
System.out.println(stu+";"+addr);
}
}
}
怎么改遍历器改成for循环啊,高手指点
作者:
贠(yun)靖
时间:
2012-3-30 01:40
for (Iterator<Map.Entry<Student,String>>it=entry.iterator(); it.hasNext(); ) 普通for
{
Map.Entry<Student,String>me=it.next();
Student stu=me.getKey();
String addr=me.getValue();
System.out.println(stu+";"+addr);
}
for (Set<Map.Entry<Student,String>> me : tm.entrySet() ) 高级for
{
Student stu=me.getKey();
String addr=me.getValue();
System.out.println(stu+";"+addr);
}
作者:
yangshang1
时间:
2012-3-30 06:28
for (Map.Entry<Student0,String> me:entry) //高级for
{
Student0 stu=me.getKey();
String addr=me.getValue();
System.out.println(stu+";"+addr);
}
作者:
李涛涛
时间:
2012-3-30 11:42
把map集合转化为set集合就可以,因为高级for循环使用的要求:数组或者set集合或者实现其接口的对象。你的问题可以有两种解决方法:
Set<Student> set = map.keyset();(set集合里面存的是map中的key值)
for(Student s:set)
{
String addr = tm.getValue();
}
还有一种就是利用entrySet(这里面存的是键值对)
for (Map.Entry<Student0,String> me:entry)
{
Student0 stu=me.getKey();
String addr=me.getValue();
System.out.println(stu+";"+addr);
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2