A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 盛亚昆 中级黑马   /  2012-3-30 01:33  /  2653 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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循环啊,高手指点

3 个回复

倒序浏览
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);
}
回复 使用道具 举报
for (Map.Entry<Student0,String> me:entry)  //高级for
                {
                        Student0 stu=me.getKey();
                    String addr=me.getValue();
                    System.out.println(stu+";"+addr);
                }
回复 使用道具 举报
把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);
                }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马