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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 徐帅 中级黑马   /  2012-5-27 19:21  /  2226 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码最后获取学生信息,迭代器是如何获取的呢?
如果在学生对象中定义获取方法get( );还好理解,
但这里直接覆盖toString(),程序会是自动调用toString()么?
请各位帮忙看看


import java.util.*;

class Student
{
        private String name;
        private String id;
       
        Student(String id,String name)
        {
                this.name = name;
                this.id = id;
        }
        public String toString()
        {
                return id+"...."+name;
        }
}

class  MapDemo5
{
        public static void main(String[] args)
        {
                HashMap<String,List<Student>> bbxy = new HashMap<String,List<Student>>();

                List<Student> yure = new ArrayList<Student>();
                List<Student> jiuye = new ArrayList<Student>();


                bbxy.put("yureban",yure);
                bbxy.put("jiuyeban",jiuye);

                yure.add(new Student("01","xushuia"));
                yure.add(new Student("02","huia"));
                yure.add(new Student("03","ushuia"));
               
                jiuye.add(new Student("01","ahrt"));
                jiuye.add(new Student("02","haha"));
                jiuye.add(new Student("03","cahe"));
                jiuye.add(new Student("04","gdfah"));
       
                //遍历bbxy集合,获取所有的数据

                Iterator<String> it = bbxy.keySet().iterator();

                while(it.hasNext())
                {
                        String roomName = it.next();
                        List<Student> room = bbxy.get(roomName);
                        System.out.println(roomName);
                       
                        getStu(room);
                }
        }
               
        public static void getStu(List<Student> list)
        {
                Iterator<Student> it = list.iterator();
                while (it.hasNext())
                {
                        Student s = it.next();
                        System.out.println(s);
                }
        }

}




评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览

回帖奖励 +3

本帖最后由 谢述华 于 2012-5-27 22:10 编辑

1、 List<Student> room = bbxy.get(roomName);中,使用HashMap的 get(Key)方法迭代获取了值jiuye和yure liset。
2、getStu(room);将两个类传递给getStu方法,在这个方法中,将两个list的内容分别打印出来。
3、之前我在另一个帖子里已经有详细的回答了,传送门:见下个帖子。。。
希望能够帮到你~~

get(key)方法.png (2.77 KB, 下载次数: 93)

get(key)方法.png

代码浅析.png (8.71 KB, 下载次数: 96)

代码浅析.png

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
打印输出语句System.out.println会自动调用变量的toString(),Object类的toString()会被他的子类的toString()覆盖,只要建立了子类对象,就会被覆盖。
具体情况,Lz可以参看这篇帖子:http://bbs.itheima.com/thread-15690-1-1.html

希望可以帮到你。

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
徐炯 发表于 2012-5-27 20:47
打印输出语句System.out.println会自动调用变量的toString(),Object类的toString()会被他的子类的toString ...

看到你给你链接,很有帮助,非常感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马