第一步:引出为什么要学习集合框架? 例子:新闻
第二步:介绍集合
集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储。
集合特点:1、用于存储对象的容器
2、集合的长度是可变的
3、集合中不可以存储基本数据类型
以上三点也是集合跟数组的区别。
容器不止一种,对于集合来说也一样,每个集合都有它独特的定义,是根据某些需求而定的。比如水杯有茶漏和无茶漏的。那么这些容器都带有共性,对它们一点点抽取,就形成了一个体系,即集合框架的体系。
(集合容器因为内部的数据结构不同,有多种具体容器,不断的向上抽取,就形成了集合框架。)
集合体系中的共性内容都在顶层,在Java中叫做Collection。
用面向对象思想来描述:这个容器有什么功能方便于我的指挥
java.lang 核心包 java.util工具包
第三步:集合框架体系的介绍
集合从体系上分为三种:
(1) 列表(List):List集合区分元素的顺序,允许包含相同的元素。
(2) 集(Set):Set集合不区分元素的顺序,不允许包含相同的元素。
(3) 映射(Map):Map集合保存的”键”-“值”对,“键”不能重复,而且一个“键”只能对应一个“值”。
1)ArrayList LinkedList Iterator
Collection:父接口,基本的接口
子接口:List Set
List 具体实现类: ArrayList LinkedList
Set 具体实现类: HashSet TreeSet
常见方法:1、添加 boolean add(Object obj) boolean addAll(Collection coll)
2、删除 boolean remove(Object obj) 删除一个
boolean removeAll(Collection coll) 删除一堆
clear() 全删除
3、判断 boolean contains(Object obj) boolean containsAll(Collection coll)
boolean equals(Object obj) boolean isEmpty() 判断是否有元素
4、获取 int size()
Iterator iterator() 迭代器:用于取出集合中的元素的方法,返回值不是元素而是迭代器对象
5、其它 boolean retainAll(Collection coll) 取交集
Object[] toArray(); 转换为Object数组
以上为必要掌握的方法,那怎么使用呢?
第四步:演示方法
......
boolean b=coll.removeAll(coll2) 将两个集合中相同元素从调用removeAll的集合中删除
boolean b=coll.retainAll(coll2) 保留和指定集合相同的元素,而删除不同的元素,和removeAll相反
第五步:现场编程:解决新闻管理系统
1)需求
2)用集合解决
3)实现 News实体类 测试类
演示代码: ArrayList al=new ArrayList();
ArrayList 、 size()、 遍历三种方法
方法一:for(Object obj:al){
News new=(News)obj;
System.out.println(new);
// if(New.getId().equals("2")){new.setName("hhh")}
//可根据id来修改信息
}
方法二: for(int i=0;i<=al.size();i++){
News new=(News)al.get(i);
System.out.println(new);
}
方法三:Iterator it=al.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
第六步:练习新闻管理系统
学生信息:修改分数
员工管理:修改工资
第二步:介绍集合
集合类的由来:对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储。
集合特点:1、用于存储对象的容器
2、集合的长度是可变的
3、集合中不可以存储基本数据类型
以上三点也是集合跟数组的区别。
容器不止一种,对于集合来说也一样,每个集合都有它独特的定义,是根据某些需求而定的。比如水杯有茶漏和无茶漏的。那么这些容器都带有共性,对它们一点点抽取,就形成了一个体系,即集合框架的体系。
(集合容器因为内部的数据结构不同,有多种具体容器,不断的向上抽取,就形成了集合框架。)
集合体系中的共性内容都在顶层,在Java中叫做Collection。
用面向对象思想来描述:这个容器有什么功能方便于我的指挥
java.lang 核心包 java.util工具包
第三步:集合框架体系的介绍
集合从体系上分为三种:
(1) 列表(List):List集合区分元素的顺序,允许包含相同的元素。
(2) 集(Set):Set集合不区分元素的顺序,不允许包含相同的元素。
(3) 映射(Map):Map集合保存的”键”-“值”对,“键”不能重复,而且一个“键”只能对应一个“值”。
1)ArrayList LinkedList Iterator
Collection:父接口,基本的接口
子接口:List Set
List 具体实现类: ArrayList LinkedList
Set 具体实现类: HashSet TreeSet
常见方法:1、添加 boolean add(Object obj) boolean addAll(Collection coll)
2、删除 boolean remove(Object obj) 删除一个
boolean removeAll(Collection coll) 删除一堆
clear() 全删除
3、判断 boolean contains(Object obj) boolean containsAll(Collection coll)
boolean equals(Object obj) boolean isEmpty() 判断是否有元素
4、获取 int size()
Iterator iterator() 迭代器:用于取出集合中的元素的方法,返回值不是元素而是迭代器对象
5、其它 boolean retainAll(Collection coll) 取交集
Object[] toArray(); 转换为Object数组
以上为必要掌握的方法,那怎么使用呢?
第四步:演示方法
......
boolean b=coll.removeAll(coll2) 将两个集合中相同元素从调用removeAll的集合中删除
boolean b=coll.retainAll(coll2) 保留和指定集合相同的元素,而删除不同的元素,和removeAll相反
第五步:现场编程:解决新闻管理系统
1)需求
2)用集合解决
3)实现 News实体类 测试类
演示代码: ArrayList al=new ArrayList();
ArrayList 、 size()、 遍历三种方法
方法一:for(Object obj:al){
News new=(News)obj;
System.out.println(new);
// if(New.getId().equals("2")){new.setName("hhh")}
//可根据id来修改信息
}
方法二: for(int i=0;i<=al.size();i++){
News new=(News)al.get(i);
System.out.println(new);
}
方法三:Iterator it=al.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
第六步:练习新闻管理系统
学生信息:修改分数
员工管理:修改工资