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 ...
随机推荐
- MongoDB的CURD命令
1.启动客户端 在MongDB服务成功启动的情况下,打开cmd,在MongDB的bin文件目录下执行MongDB命令 可以看到MongDB版本号3.0.7与默认连接的数据库test.test数据库是系 ...
- 理解cocoa和cocoa touch的响应者链
该文章翻译自:Understanding cocoa and cocoa touch responder chain. 转载注明出处:http://www.cnblogs.com/zhanggui/p ...
- 【python】函数说明文档
- iOS 模拟器安装应用
iOS模拟器是苹果Xcode IDE的一部分,主要用来为Mac,iPhone和iPad创建应用程序,为了给iOS模拟器打包应用程序,利用–package 在命令行上执行ADT并使用–target来指定 ...
- springboot学习(一)——helloworld
以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给 ...
- 手动安装cloudera manager 5.x(tar包方式)详解
官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦.第二种方法下载很多包.第三种方法对系统 ...
- 历年NOIP选题题解汇总
联赛前上vijos板刷往年联赛题,使用在线编辑编写代码,祝我rp++. 废话不多说,挑比较有意思的记一下. 题目是按照年份排序的,最早只到了03年. 有些题目因为 我还没写/很早之前写的忘了 所以就没 ...
- GAME——转圈游戏
我们在生命的路上常常绝望 大概是因为弯路走了太多 脚上的泡被磨起又磨破 像我们所有的幻想与梦 起起落落. 所以说 我这道题考场上面和题解想得一模一样啊啊啊啊啊啊啊啊啊啊!!!!!! 但是就是打复杂了啊 ...
- lesson - 3 笔记 ls /alias /ldd /cd /pwd /环境变量 / 目录
一.ls 命令 作用:用来显示目录列表. 语法: ls (选项) (参数) 选项: -a: 显示所有档案以及目录(ls内定将档案或目录名称为“./..”的视为隐藏) -A: 显示除隐藏文件“./.. ...
- Java NIO (五) 管道 (Pipe)
Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 如下图: 向管道写数据: 从管道读数据: 1. ...