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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 康大玮 中级黑马   /  2012-7-17 16:27  /  2404 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 康大玮 于 2012-7-17 17:11 编辑

import java.util.*;

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

        public static void demo()
        {
                HashMap<String,List<Student>> czbk = new HashMap<String,List<Student>>();

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

                czbk.put("yureban",reyu);
                czbk.put("jiuyeban",jiuye);

                reyu.add(new Student("01","zhagnsa"));
                reyu.add(new Student("04","wangwu"));
                jiuye.add(new Student("01","zhouqi"));
                jiuye.add(new Student("02","zhaoli"));


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

                while(it.hasNext())
                {
                        String roomName = it.next();
                        List<Student> room = czbk.get(roomName);
                        
                        System.out.println(roomName);
                        getInfos(room);
                }

               

        
        }
        public static void getInfos(List<Student> list)
        {
                Iterator<Student> it = list.iterator();
                while(it.hasNext())
                {
                        Student s = it.next();
                        System.out.println(s);
                }
        }




        public static void main(String[] args)
        {
                 demo();
               
                /*
                HashMap<String,List<Student>> czbk = new HashMap<String,List<Student>>();

                HashMap<String,String> yure = new HashMap<String,String>();
               
                HashMap<String,String> jiuye = new HashMap<String,String>();

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


                yure.put("01","zhagnsan");
                yure.put("02","lisi");

                jiuye.put("01","zhaoliu");
                jiuye.put("02","wangwu");



                //遍历czbk集合。获取所有的教室。
                Iterator<String> it = czbk.keySet().iterator();

                while(it.hasNext())
                {
                        String roomName = it.next();
                        HashMap<String,String> room = czbk.get(roomName);
                        
                        System.out.println(roomName);
                        getStudentInfo(room);
                }

               
//                getStudentInfo(jiuye);
//                getStudentInfo(yure);
*/
               
        }
        public static void getStudentInfo(HashMap<String,String> roomMap)
        {
                Iterator<String> it = roomMap.keySet().iterator();

                while(it.hasNext())
                {
                        String id = it.next();
                        String name = roomMap.get(id);
                        System.out.println(id+":"+name);
                }
        }
}

6 个回复

倒序浏览
也不说那里看不懂?
回复 使用道具 举报
黑马刘涛 发表于 2012-7-17 16:43
也不说那里看不懂?

在取出得时候,
回复 使用道具 举报
就是迭代器 有什么看不懂的.....
回复 使用道具 举报
1、集合框架里面的那些类,就是写容器而已,用来装东西的,容器里面的元素可以是容器,也可以是基本数据类型和各种类类型。

2、 HashMap<String,List<Student>> czbk = new HashMap<String,List<Student>>();
      这个容器能装键值对,它的键值对是:
        ①键String类型
        ②值:List容器      
       ③list容器里面只能装Student对象

3、存放的时候:我觉得应该倒过来添加  ①先定义HashMap 、String、List<Studnt>
                ②在定义几个Student,添加到list里面,在将list和String添加到HashMap里面
    例如:一个大箱子(HashMap)里面装了了很多小盒子,每个小盒子(键值对)里面有一只钢笔(String)和一个名片包,
              每个名片包里面装有卡片(Student),
        如图:


4、你想想生活中,各种事物之间的包含关系,比如说学校有班级名和班级,班级里面又有同学.
反正是大东西里面装小东西,看你怎么装了,在集合框架里面,你可以根据不同的需求,来选择容器。
      你想想你自己在不同的时间会在哪些空间里面,这里空间就好比集合里面的容器了。教室里、篮球场、游戏池。公交车、
马路旁,说大了点,大陆,空中、水里面。。这都是用来装东西的,所以他们叫容器,你要明白,集合框架也是容器的体系结构,就是来存储内存中的各种数据。。。。。容器就是用来装东西的。。

                     

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
张世威 发表于 2012-7-17 17:26
1、集合框架里面的那些类,就是写容器而已,用来装东西的,容器里面的元素可以是容器,也可以是基本数据类 ...

非常感谢!
回复 使用道具 举报
张世威 发表于 2012-7-17 17:26
1、集合框架里面的那些类,就是写容器而已,用来装东西的,容器里面的元素可以是容器,也可以是基本数据类 ...

非常感谢!明白了

点评

原来只要花时间,把问题写仔细,尽量用自己的思路来,得分还是蛮快的呀,哈哈,谢谢了,不过这为了得一分,少则20分钟,多则个把小时呀。。。  发表于 2012-7-18 00:51
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马