回顾
1、Date
构造:
new Date()
new Date(long time)
方法:
getTime();
setTime();
2、Date -- String
SimpleDateFormat
Date --> String 格式化 format
String --> Date 解析 parse 注意:自定义的模式一定要和字符串格式匹配
3、Calendar
获取对象方式 -- getInstance();
get()
set()
add(int field, int amount)
4、对象数组
5、综合案例
集合
数组:
1、长度固定
2、数据类型一致
3、可以存储基本和引用数据类型
集合:
1、长度可变
2、可以存储不同数据类型
3、只能存储引用数据类型
学习集合:
学顶层 -- 共性内容
用底层 -- 具体实现
Collection集合
1、用ArrayList实现类
2、 boolean add(Object obj) -- 是否成功
clear(); -- 清空(不建议使用)
boolean remove(Object obj) -- 删除是否成功
int size() -- 集合里面元素的长度
boolean isEmpty() -- 判断集合里是否有元素
boolean contains(Object obj) -- 判断元素是否在集合中
3、听完就忘 -- 也要理解
boolean addAll(Collection c) -- 添加一个集合的元素
boolean containsAll(Collection c) -- 只有包含所有元素才会返回true
boolean removeAll(Collection c) -- 返回的是表示调用方法的集合是否发生改变
boolean retainAll(Collection c) -- 如果A调用方法传递参数B , 那么返回值表示A是否发生改变。
如果改变,A保存交集,B不变
不同集合的数据结构是不一样的,迭代器如果定义成一个统一的实现类。
那么遍历不同集合的时候,会不会出问题?会。
但是迭代器以接口的形式定义。规则:hasNext(); next();
又是在具体的某一个集合中以内部类的方式实现。
List体系
List 元素有序,可重复
Set 元素无序,不可重复
顺序 -- 元素存入和取出的顺序
List集合 util包下的。
List集合的功能:
添加: add(int index, Object obj) -- 在指定位置添加
删除: object remove(int index) -- 返回删除的元素
修改:object set(int index, Object obj) -- 返回被替换的元素
获取:get(int index); -- 获取指定索引出的元素
有了get(int index) 又有int size(), 想到for循环遍历
for(int x = 0; x < list.size(); x++) {
// 每一个元素
Object o = list.get(x);
}
ListIterator<E> listIterator() 迭代器
int indexOf(Object o) -- 返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
异常 : ConcurrentModificationException -- 并发修改异常
面试题:
产生环境:通过普通迭代器遍历集合的时候,又通过集合改变了集合的结构。这个时候就报出此异常。
因为迭代器是通过集合获取的,集合改变了,但是迭代器没有。
解决方法:
1、使用普通for循环,这时候元素添加到集合的末尾。
2、使用ListIterator遍历,并且使用该迭代器的add()方法添加元素。这时,元素添加到匹配的那个元素后面
作业1:
创建集合ArrayList,添加hello,world,java三个元素,然后遍历集合,
判断集合中是否有元素hello,如果有的话就添加一个新元素ios进去。然后再遍历集合。
遍历:for 和 列表迭代器。
作业2:
1.首先定义一个自定义的类
2.请用集合存储3个该类对象,然后遍历集合。打印出每个属性(两个)。
要求: 用集合的顶层接口来接收。实现类用ArrayList。1种遍历方式,迭代器。
代码要求:格式化良好。加注释。
作业3:
ConcurrentModificationException 整理到你的异常。
|
|