黑马程序员技术交流社区

标题: 黑马程序员List集合嵌套存储和遍历元素的案例 希望能对大... [打印本页]

作者: ulddfhv    时间: 2015-4-13 22:54
标题: 黑马程序员List集合嵌套存储和遍历元素的案例 希望能对大...
本帖最后由 ulddfhv 于 2015-4-13 23:20 编辑
  1. ------<a  target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
复制代码
package cn.itcast.list;
import java.util.ArrayList;
import java.util.List;

//需求:学校中有两个班级,每个班级都有若干学生,将班级中的学生进行一下管理。  集合中装入的是Student对象.

public class ListDemo {

        public static void main(String[] args) {

                // 1.创建一个可以装入一班学生的集合
                List<Student> first = new ArrayList<Student>();     //记得要导集合的包哦亲,快捷键ctrl+shift+o
                first.add(new Student("张无忌"));         //向集合中添加元素
                first.add(new Student("令狐冲"));
                first.add(new Student("杨过"));

                // 2.创建一个可以装入二班学生的集合
                List<Student> second = new ArrayList<Student>();
                second.add(new Student("tom"));
                second.add(new Student("fox"));
                second.add(new Student("james"));
                second.add(new Student("lucy"));

                // 3.创建一个学校,用于装入一班与二班
                // 问题:school这个集合的泛型是什么?
                List<List<Student>> school = new ArrayList<List<Student>>(); // 描述的是school这个集合中的元素是List类型,而集合中元素List中的类型是String

                school.add(first);      //这里就是集合的嵌套存储了  school集合里面存储一个first班级的集合  还是用add方法
                school.add(second);
               
                //4.将集合中所有的元素遍历出来
                //问题:对于List集合,你有几种遍历方式?
                //1.Iterator   2.for+size+get   3.foreach  4.ListIterator
                //关于这四种的选择  :1.如果要全部迭代出来可以用foreach也叫增强for   2.如果不涉及到同步问题 ,要精确控制可以使用for+size+get  3.如果涉及到了同步可以用iterator
                for(List<Student> ss:school){                    //从school中迭代出来的是也是一个List集合
                        for(Student s:ss){                             //双使用了一个foreach对其进行遍历。
                                System.out.println(s.getName());       //打印集合中的元素
                        }
                        System.out.println("-----------华丽的分割线-------------");
                }
        }
}

class Student {        
        private String name;      //提供private的私有属性字段

        public Student(String name) {     //提供有参构造方法
                super();
                this.name = name;
        }

        public Student() {      //提供无参构造方法

        }
                    //提供get/set方法
        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

一个简单的集合嵌套存储与遍历的作业,希望能对大家有所帮助。有什么不明白的地方,大家也可以一起相互讨论,我们共同学习,共同进步哦!!!:):):)





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