黑马程序员技术交流社区

标题: 第16天的视频,代码看不懂 [打印本页]

作者: 康大玮    时间: 2012-7-17 16:27
标题: 第16天的视频,代码看不懂
本帖最后由 康大玮 于 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);
                }
        }
}
作者: 黑马刘涛    时间: 2012-7-17 16:43
也不说那里看不懂?
作者: 康大玮    时间: 2012-7-17 16:48
黑马刘涛 发表于 2012-7-17 16:43
也不说那里看不懂?

在取出得时候,
作者: 游兴钟    时间: 2012-7-17 16:54
就是迭代器 有什么看不懂的.....
作者: 张世威    时间: 2012-7-17 17:26
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、你想想生活中,各种事物之间的包含关系,比如说学校有班级名和班级,班级里面又有同学.
反正是大东西里面装小东西,看你怎么装了,在集合框架里面,你可以根据不同的需求,来选择容器。
      你想想你自己在不同的时间会在哪些空间里面,这里空间就好比集合里面的容器了。教室里、篮球场、游戏池。公交车、
马路旁,说大了点,大陆,空中、水里面。。这都是用来装东西的,所以他们叫容器,你要明白,集合框架也是容器的体系结构,就是来存储内存中的各种数据。。。。。容器就是用来装东西的。。

                     
作者: 康大玮    时间: 2012-7-18 00:30
张世威 发表于 2012-7-17 17:26
1、集合框架里面的那些类,就是写容器而已,用来装东西的,容器里面的元素可以是容器,也可以是基本数据类 ...

非常感谢!
作者: 康大玮    时间: 2012-7-18 00:30
张世威 发表于 2012-7-17 17:26
1、集合框架里面的那些类,就是写容器而已,用来装东西的,容器里面的元素可以是容器,也可以是基本数据类 ...

非常感谢!明白了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2