Java中的集合框架(上)
- Java中的集合框架概述
集合的概念:
Java中的集合类:是一种工具类,就像是容器,存储任意数量的具有共同属性的对象。
集合的作用:
1.在类的内部,对数据进行组织;
2.简单的快速的搜索大数据量的条目;
3.有的集合接口,提供了一系列排列有序的元素,并且 可以在序列中间快速的插入或删除有关的元素。
4.有的集合接口,提供了映射关系,可以通过 关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
与数组的对比一为何选择集合而不是数组
1.数组的长度固定,集合长度可变
2.数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所影射的具体对象
Java集合体系结构
Collection家族和Map家族组成。
- Collection接口&List接口简介
Collection接口子接口以及实现类
Collection接口
1.是List、Set和Queue接口的父接口
2.定义了可用于操作List、Set和Queue的方法一增删改查
List接口及其实现类——ArrayList
1.List是元素有序并且可以重复的集合,被称为序列
2.List可以精确的控制每个元素的插入位置,或删除某个位置元素
3.ArrayList——数组序列,是List的一个重要的实现类
4.ArryList底层是由数组实现的
- 学生选课——创建学生类和课程类
1.创建课程类(Course)
2.创建学生类
- 学生选课——添加课程1
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2); } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); } }
运行结果为:
- 学生选课——添加课程11
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); } }
运行结果为:
- 学生选课——查询课程
取得List中的元素的方法
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); } }
运行结果为:
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=CourseToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); list.testIterator(); } }
运行结果为:
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=CourseToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过for each方法访问集合元素 * * */ public void testForEach(){ System.out.println("有如下课程待选(通过 for each访问):"); for (Object object : CourseToSelect) { Course cr=(Course) object; System.out.println("课程:"+cr.id+":"+cr.name); } } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); list.testIterator(); list.testForEach(); } }
运行结果为:
- 学生选课——课程修改
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=CourseToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过for each方法访问集合元素 * * */ public void testForEach(){ System.out.println("有如下课程待选(通过 for each访问):"); for (Object object : CourseToSelect) { Course cr=(Course) object; System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 修改List中的元素 * */ public void testModify(){ CourseToSelect.set(4,new Course("7","毛概")); } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); list.testIterator(); list.testForEach(); list.testModify(); list.testForEach(); } }
运行结果为:
- 学生选课——课程删除
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=CourseToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过for each方法访问集合元素 * * */ public void testForEach(){ System.out.println("有如下课程待选(通过 for each访问):"); for (Object object : CourseToSelect) { Course cr=(Course) object; System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 修改List中的元素 * */ public void testModify(){ CourseToSelect.set(4,new Course("7","毛概")); } /* * 删除list中的元素 * */ public void testRemove(){ Course cr=(Course) CourseToSelect.get(4); System.out.println("我是课程:"+cr.id+":"+cr.name+"我即将被要删除"); CourseToSelect.remove(cr); System.out.println("成功删除课程"); testForEach(); } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); list.testIterator(); list.testForEach(); list.testModify(); list.testForEach(); list.testRemove(); } }
运行结果为:
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; /* *备选课程类 * */ public class ListTest { /** * 用于存放备选课程List * */ public List CourseToSelect; public ListTest(){ this.CourseToSelect=new ArrayList(); } //用于往CourseToSelect中添加备选课程 public void addCourse(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); CourseToSelect.add(c); Course temp=(Course) CourseToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); CourseToSelect.add(0, c1); Course temp1=(Course) CourseToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); CourseToSelect.add(cq); Course temp0=(Course) CourseToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; CourseToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) CourseToSelect.get(2); Course temp3=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; CourseToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) CourseToSelect.get(2); Course temp5=(Course) CourseToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=CourseToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) CourseToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=CourseToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过for each方法访问集合元素 * * */ public void testForEach(){ System.out.println("有如下课程待选(通过 for each访问):"); for (Object object : CourseToSelect) { Course cr=(Course) object; System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 修改List中的元素 * */ public void testModify(){ CourseToSelect.set(4,new Course("7","毛概")); } /* * 删除list中的多组元素 * */ public void testRemove(){ System.out.println("即将删除4位置和5位置上的课程"); Course[] course={(Course)CourseToSelect.get(4),(Course)CourseToSelect.get(5)}; CourseToSelect.removeAll(Arrays.asList(course)); System.out.println("成功删除课程"); testForEach(); } public static void main(String []args){ ListTest list=new ListTest(); list.addCourse(); list.testGet(); list.testIterator(); list.testForEach(); list.testModify(); list.testForEach(); list.testRemove(); } }
运行结果为:
- 学生选课——应用泛型管理课程1
泛型
集合中的元素,可以是任意类型的对象(对象的引用)。如果把某一个对象放入集合,则会忽略他的类型,而把他当做Object处理
泛型则是规定了某个集合只可以存放特定类型的对象。会在编译期间进行类型检查,可以直接按指定类型获取集合元素
package com.imooc.collection; import java.util.ArrayList; import java.util.List; public class TestGeneric { //带有泛型Course的List类型属性 public List<Course>courses; public TestGeneric(){ this.courses=new ArrayList<Course>(); } //测试 public void testAdd(){ Course cr1=new Course("1","大学英语"); courses.add(cr1); Course cr2=new Course("2","Java基础"); courses.add(cr2); //泛型集合中,不能添加泛型规定的类型以外的对象,否则会报错! //courses.add("可以添加奇怪的东西吗??"); } //测试循环遍历 public void testForEach(){ for (Course cr:courses) { System.out.println(cr.id+":"+cr.name); } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TestGeneric tg=new TestGeneric(); tg.testAdd(); tg.testForEach(); } }
- 学生选课——应用泛型管理课程11
1.泛型集合中的限定类型不能使用基本数据类型。
2.可以通过使用包装类限定允许存入的基本数据类型。
- 学生选课——通过Set集合管理课
Set接口及其实现类——HashSet
1.set是元素无序并且不可以重复的集合,被称为集。
2.HashSet——哈希集,是Set的一个重要实现类
package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.Scanner; public class SetTest { public List<Course>coursesToSelect; public SetTest(){ coursesToSelect=new ArrayList<Course>(); } //用于往CourseToSelect中添加备选课程 public void testAdd(){ //创建一个课程对象,并通过调用add方法,添加到备选课程List中 Course c=new Course("1","数据结构"); coursesToSelect.add(c); Course temp=(Course) coursesToSelect.get(0); System.out.println("添加了一门课程"+temp.id+":"+temp.name); Course c1=new Course("2","C语言"); coursesToSelect.add(0, c1); Course temp1=(Course) coursesToSelect.get(0); System.out.println("添加一门课程:"+temp1.id+":"+temp1.name); Course cq=new Course("1","数据结构"); coursesToSelect.add(cq); Course temp0=(Course) coursesToSelect.get(2); System.out.println("添加了一门课程"+temp0.id+":"+temp0.name); /*Course c2=new Course("2","Test1"); CourseToSelect.add(4, c2);*/ Course[] course={new Course("3","离散数学"),new Course("4","汇编语言")}; coursesToSelect.addAll(Arrays.asList(course)); Course temp2=(Course) coursesToSelect.get(2); Course temp3=(Course) coursesToSelect.get(3); System.out.println("添加了两门课程:"+temp2.id+":"+temp2.name+";"+temp3.id+":"+temp3.name); Course[] course2={new Course("5","高等数学"),new Course("6","数字逻辑")}; coursesToSelect.addAll(2, Arrays.asList(course2)); Course temp4=(Course) coursesToSelect.get(2); Course temp5=(Course) coursesToSelect.get(3); System.out.println("添加了两门课程:"+temp4.id+":"+temp4.name+";"+temp5.id+":"+temp5.name); } /* * 取得List中的元素的方法 * */ public void testGet(){ System.out.println("有如下课程待选:"); int size=coursesToSelect.size(); for (int i = 0; i < size; i++) { Course cr=(Course) coursesToSelect.get(i); System.out.println("课程:"+cr.id+":"+cr.name); } } /* * 通过迭代器来遍历List * */ public void testIterator(){ //通过集合iterator方法,取得迭代器实例 Iterator it=coursesToSelect.iterator(); System.out.println("有如下课程待选(通过迭代器访问):"); while (it.hasNext()) { Course cr = (Course) it.next(); System.out.println("课程:"+cr.id+":"+cr.name); } } /** 通过for each方法访问集合元素 * * */ public void testForEach(){ System.out.println("有如下课程待选(通过 for each访问):"); for (Object object : coursesToSelect) { Course cr=(Course) object; System.out.println("课程:"+cr.id+":"+cr.name); } } /** * @param argsS */ public static void main(String[] args) { // TODO Auto-generated method stub SetTest st=new SetTest(); st.testAdd(); st.testForEach(); //创建一个学生对象 Student student=new Student("1","小明"); System.out.println("欢迎学生"+student.name+"选课"); //创建一个Scanner对象,用来接收从键盘输入的课程ID Scanner console=new Scanner(System.in); for (int i = 0; i < 3; i++) { System.out.println("请输入课程ID"); String courseId=console.next(); for (Course cr : st.coursesToSelect) { if (cr.id.equals(courseId)) { student.courses.add(cr); /*Set中添加某个对象,无论添加杜少次, * 最终只会保留一个该对象(的引用) * 并且,保留的是第一次添加的那一个*/ //student.courses.add(null); //student.courses.add(cr); } } } st.testForEachForSet(student); } public void testForEachForSet(Student student){ //打印输出,学生所选的课程 System.out.println("共选择了"+student.courses.size()+"门课程!"); for(Course cr:student.courses){ System.out.println("选择了课程"+cr.id+":"+"cr.name"); } } }
运行结果为:
Java中的集合框架(上)的更多相关文章
- 菜鸟日记之 java中的集合框架
java中的集合框架图 如图所示:java中的集合分为两种Collection和Map两种接口 可分为Collection是单列集合和Map的双列集合 Collection单列集合:继承了Iterat ...
- Java中的集合框架-Collections和Arrays
上一篇<Java中的集合框架-Map>把集合框架中的键值对容器Map中常用的知识记录了一下,本节记录一下集合框架的两个工具类Collections和Arrays 一,Collections ...
- Java中的集合框架-Map
前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...
- Java中的集合框架-Collection(二)
上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子 ...
- Java中的集合框架
概念与作用 集合概念 现实生活中:很多事物凑在一起 数学中的集合:具有共同属性的事物的总体 java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象 在编程时,常常需要集中存放多 ...
- Java中的集合框架(下)
学生选课--判断Set中课程是否存在 package com.imooc.collection; import java.util.ArrayList; import java.util.Arrays ...
- Java中的集合框架-Collection(一)
一,Collection接口 在日常的开发工作中,我们经常使用数组,但是数组是有很多的局限性的,比如:数组大小固定后不可修改,只能存储基本类型的值等等. 基于数组的这些局限性,Java框架就产生了用于 ...
- JAVA 中的集合框架
java集合框架提供了一套性能优良.使用方便的接口和类,它们位于java.util包中 一.集合与数组 数组:(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知 ...
- Java学习--java中的集合框架、Collection接口、list接口
与数组相比:1.数组的长度固定,而集合的长度可变2.数组只能通过下表访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象 java集合框架:collection(list序列,queue ...
随机推荐
- Linux基础:用tcpdump抓包
简介 网络数据包截获分析工具.支持针对网络层.协议.主机.网络或端口的过滤.并提供and.or.not等逻辑语句帮助去除无用的信息. tcpdump - dump traffic on a netwo ...
- How to use GitHub with Android Studio
转载于:http://www.wfuyu.com/technology/22499.html 目前业界主流的版本管理工具主要是 svn/git.svn是1种集中式的代码管理工具,而git是1种散布式的 ...
- oracle 主键自增 设置----杜恩德
<div id="topicList"> <div class="forFlow"> <div class = "pos ...
- 如何通过Mock API提高APP开发效率?
APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...
- 利用GDAL进行工具开源化改造
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 为利于项目实施,团队用AE写过一个插件式的工具集,主要包括了数 ...
- 使用puppet
首先配置一个默认文件 只是首次创建的时候才需要重启,后期不需要重启! [root@master manifests]# vim /etc/puppet/manifests/site.pp node d ...
- wait/notify 实现多线程交叉备份
一.任务 创建20个线程,其中10个线程是将数据备份到 A 数据库中,另外10 个线程将数据备份到 B 数据库中,并且备份 A 数据库和 备份 B 数据库的是交叉运行的. 二.实现 1.实现备份 A ...
- office------------word邮件合并(word2016版)
虽然本人是学计算机的,但是office技能很一般,最近工作中用到了邮件合并这一功能,记录下来与大家分享. 我用到的邮件合并就是word中定好模板,从excel中批量导入数据,现实生活中,在录取通知书打 ...
- Git安装和使用(谨记)
刚开始用git的小白适用,,转自http://www.cnblogs.com/qijunjun/p/7137207.html 实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下 ...
- C#打印杨辉三角
重主要的方法在于: 1.初始化二维数组 2.边界赋值 3.中心值赋值 4.输出 <pre name="code" class="csharp"> c ...