数据结构
A:栈
先进后出
B:队列
先进先出
C:数组
查询快,增删慢
D:链表
查询慢,增删快
List的三个实现类
(1)List的三个实现类特点
A:ArrayList
底层数据结构是数组,查询快,增删慢
线程不安全,效率高
B:Vector
底层数据结构是数组,查询快,增删慢
线程安全,效率低
C:LinkedList
底层数据结构是链表,查询慢,增删快
线程不安全,效率高
(2)ArrayList
A:存储字符串并遍历
B:存储自定义对象并遍历
(3)Vector
A:特有功能(了解)
a:addElement(object obj) -- add()
b:elementAt(int index) -- get()
c:elements() -- iterator()
B:存储字符串并遍历
C:存储自定义对象并遍历
(4)LinkedList
A:特有功能(了解)
a:addFirst(),addLast()
b:removeFirst(),removeLast()
c:getFirst(),getLast()
B:存储字符串并遍历
C:存储自定义对象并遍历
(5)案例:
A:去除ArrayList集合中重复字符串
B:去除ArrayList集合中重复自定义对象
contains()方法的底层源码是equals()
C:用LinkedList模拟栈数据结构的集合,并测试
泛型(掌握)
(1)泛型:是一种把明确数据类型的工作推迟到创建对象或者调用方法的时候采取明确的特殊的数据类型。
(2)格式:
<数据类型>
(3)好处:
A:提高了程序的安全性
B:把运行时期异常提前到了编译期
C:避免了强制类型转换
(4)在哪些地方使用泛型?
看API即可,如果类,抽象类,接口后面跟有<...>说明这里需要使用
(5)泛型的由来(理解)
A:泛型的由来
B:泛型类
C:泛型方法
D:泛型接口
E:泛型高级
(6)案例:
把前面的集合案例用泛型改进。
5:JDK5新特性(掌握)
(1)增强for(掌握)
A:格式
for(元素的数据类型 变量名 : 数组或者Collection集合对象) {
使用变量名即可
}
B:好处
简化了数组或者集合的遍历
C:注意事项
增强for的目标不能为null
(2)静态导入(了解)
A:格式
import static xxx.yyy.zzz.类名.方法名;
导入到了方法的级别
B:注意事项
a:方法必须是静态的
b:如果有同名的方法,将来使用的时候还要加前缀,意义不大,所以一般不用。
(3)可变参数(理解)
A:针对写功能的时候,参数个数不明确的情况
B:格式:
修饰符 返回值类型 方法名(形式参数数据类型... 变量) {}
C:注意实现
a:这个变量其实是数组,它会自动把多个元素组装成一个数组
b:如果一个方法有多个形式参数,可变参数一定放最后