课程回顾:
Date
SimpleDateFormat
Calendar
String
StringBuffer/StringBuilder
包装类
今日内容:
集合:动态的存储多个对象
1、长度可变
2、存储引用类型
java中的集合:
1、Collection<E>:继承了迭代器接口
子接口:
1、List<E>:允许重复且有序
1、ArrayList<E>:底层实现:数组
2、LinkedList<E>:底层实现:双链式结构
2、Set<E>:不可重复且无序
是否保证添加顺序,保证就是有序,不保证就是无序
2、Map<K,V>
只有继承迭代器接口都可以使用增强for循环进行遍历输出
ArrayList<E>:底层实现:数组 新增和删除的效率较低,修改和查找的效率较高
常用方法:
1、add:添加元素对象,添加到末尾
2、add(index,e):添加元素到指定位置
3、size:获取集合中元素的个数
4、get:获取指定索引的元素
5、contains:验证指定的元素是否存在
6、indexOf:查找指定元素第一次的索引(从前往后),找到就返回索引,找不到-1
7、lastIndexOf:查找指定元素第一次出现的索引(从后往前)
8、remove:删除指定元素并返回删除是否成功 或者 删除指定索引的元素并返回元素
9、set:设置元素
10、iterator:获取集合的迭代器对象,主要用于遍历输出
Iterator<E>:迭代器接口
常用方法:
hasNext:验证是否还有元素
next:获取元素
谨记:next方法调用一次就相当于索引自增1
如果到达了集合的末尾再调用next方法时,会抛异常
LinkedList<E>:底层实现:双链式结构 新增和删除效率较高,查询和修改效率较低
常用方法:
添加方法:
add:添加,末尾
addFirst:添加,首位
addLast:添加,末尾
offer添加,末尾
offerFirst添加,首位
offerLast添加,末尾
push:添加到首位
获取方法:
get:获取指定索引的元素
getFirst获取首位元素
getLast获取最后一个元素
element获取首位元素
peek获取首位元素,如果为null则返回null
peekFirst获取首位元素
peekLast获取最后一个元素
获取并删除方法:
remove:获取并删除指定索引的元素
removeFirst获取删除首位元素
removeLast获取删除最后一个元素
poll:获取删除首位元素
pollFirst获取删除首位元素
pollLast获取删除最后一个元素
pop获取并删除首位元素
其它方法:
size:元素个数
set:设置元素
indexOf:从前往后查询
lastIndexOf:从后往前查询
clear:清空
contains:包含
集合:
add
remove
set
indexOf
模拟堆栈:先进后出
push:添加到首位
pop获取并删除首位元素
模拟队列:先进先出
offer添加,末尾
offerFirst添加,首位
offerLast添加,末尾
peek获取首位元素,如果为null则返回null
peekFirst获取首位元素
peekLast获取最后一个元素
poll:获取删除首位元素
pollFirst获取删除首位元素
pollLast获取删除最后一个元素
泛型:5.0之后
之前的集合元素都是Object类型
元素类型使用Object缺点:
1、向上向下转型,性能损耗
2、容易有ClassCastException异常
泛型:引用数据类型的占位符
好处:
1、避免了存储和取出的对象转换,提供了效率
在实际使用的时候,必须指明泛型的具体的引用类型
java中的括号:
():方法
[]:数组
{}:代码块,类体、方法体等
<>:泛型
练习:使用LinkedList进行存储整型
要求随机生成数字填充,长度不限制
查询8这个数字出现的次数