1、集合框架
概念与作用
在现实生活中:很多的事物凑在一起
数学中的集合:具有共同属性的事物发总体,例如有理数和整数。
java中的集合类:是一种工具类,就像是容器,储存任意数的具有共同属性的对象。
集合的作用:
1、在类的内部,对数据进行组织;
2、简单而快速的搜索大数量的条目;
3、有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素;
4、有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型。
与数组的对比-----为何选择集合而不是数组?
>数组的长度固定,集合长度可变
>数组只能通过下标访问元素,类型固定,而有的集合可以通过任意类型查找所映射的具体对象
体系结构 :
2、Collection接口、子接口以及实现类
Collection接口:
>是List、Set和Queue接口的父接口
>定义了可用于操作List、Set和Queue的方法增删查改
List接口及其实现类——ArrayList
>List是元素有序并且可以重复的集合,被称为序列
> List可以精确的控制每个元素的插入位置,或删除某个位置
>ArrayList——数组序列,是List的一个重要实现类
>ArrayList底层是由数组实现的
实现功能——模拟学生选课系统
>选择课程(往集合中添加课程)
>删除所选的某门课程(删除集合中的元素)
>查看所选课程
>修改所选课程
3、创建学生类和课程类
创建学生类,代码如图所示:
创建课程类,代码如图所示:
4、添加课程
第一步:添加课程1
代码如图所示:
运行结果如图所示:
第二步:添加课程2
代码如图所示:
运行结果如图所示:
第三步:异常
代码:
package DiShiQiCiJavaZuoYe;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 备选课程类
* @author abc25
*
*/
public class ListTest {
/**
* 用于存放备选课程的List
*/
public List coursesToSelect;
public ListTest() {
this.coursesToSelect = new ArrayList();
}
/**
* 用于往coursesToSelect中添加备选课程
*/
public void testAdd() {
//创建一个课程对象,并通过调用add方法,添加到备选课程List中
Course cr1 = new Course("1","数据结构");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
System.out.println("添加了课程:" + temp.id +":" + temp.name);;
Course cr2 = new Course("2","C语言");
coursesToSelect.add(0,cr2);
Course temp2 =(Course)coursesToSelect.get(0);
System.out.println("添加了课程:" + temp2.id + ":" + temp2.name);
Course cr3 = new Course("3","test");
coursesToSelect.add(4,cr3);
}
public static void main(String[] args) {
ListTest It = new ListTest();
It.testAdd();
}
}
运行结果如图所示:
第四步:添加课程3和课程4
代码:
package DiShiQiCiJavaZuoYe;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 备选课程类
* @author abc25
*
*/
public class ListTest {
/**
* 用于存放备选课程的List
*/
public List coursesToSelect;
public ListTest() {
this.coursesToSelect = new ArrayList();
}
/**
* 用于往coursesToSelect中添加备选课程
*/
public void testAdd() {
//创建一个课程对象,并通过调用add方法,添加到备选课程List中
Course cr1 = new Course("1","数据结构");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
System.out.println("添加了课程:" + temp.id +":" + temp.name);;
Course cr2 = new Course("2","C语言");
coursesToSelect.add(0,cr2);
Course temp2 =(Course)coursesToSelect.get(0);
System.out.println("添加了课程:" + temp2.id + ":" + temp2.name);
//以下方法会抛出数组下标越界异常
//Course cr3 = new Course("3","test");
//coursesToSelect.add(4,cr3);
Course[] course = {new Course("3","离散数学"),new Course("4","汇编语言")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course) coursesToSelect.get(2);
Course temp4 = (Course) coursesToSelect.get(3);
System.out.println("添加了两门课程:" + temp3.id + ":" + temp3.name + ";" + temp4.id + ":" + temp4.name);
}
public static void main(String[] args) {
ListTest It = new ListTest();
It.testAdd();
}
}
运行结果如图所示:
第五步:添加课程5、课程6
代码:
package DiShiQiCiJavaZuoYe;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 备选课程类
* @author abc25
*
*/
public class ListTest {
/**
* 用于存放备选课程的List
*/
public List coursesToSelect;
public ListTest() {
this.coursesToSelect = new ArrayList();
}
/**
* 用于往coursesToSelect中添加备选课程
*/
public void testAdd() {
//创建一个课程对象,并通过调用add方法,添加到备选课程List中
Course cr1 = new Course("1","数据结构");
coursesToSelect.add(cr1);
Course temp = (Course) coursesToSelect.get(0);
System.out.println("添加了课程:" + temp.id +":" + temp.name);
Course cr2 = new Course("2","C语言");
coursesToSelect.add(0,cr2);
Course temp2 =(Course)coursesToSelect.get(0);
System.out.println("添加了课程:" + temp2.id + ":" + temp2.name);
//以下方法会抛出数组下标越界异常
//Course cr3 = new Course("3","test");
//coursesToSelect.add(4,cr3);
Course[] course = {new Course("3","离散数学"),new Course("4","汇编语言")};
coursesToSelect.addAll(Arrays.asList(course));
Course temp3 = (Course) coursesToSelect.get(2);
Course temp4 = (Course) coursesToSelect.get(3);
System.out.println("添加了两门课程:" + temp3.id + ":" + temp3.name + ";" + temp4.id + ":" + temp4.name);
Course[] course2 = {new Course("5","高等数学"),new Course("6","大学英语")};
coursesToSelect.addAll(2,Arrays.asList(course2));
Course temp5 = (Course) coursesToSelect.get(2);
Course temp6 = (Course) coursesToSelect.get(3);
System.out.println("添加了两门课程:" + temp5.id + ":" + temp5.name