泛型
作用:让代码更加灵活
定义位置:
类
语法:
访问权限修饰符 class 类名<X,...>{
访问权限修饰符 X 属性名;
访问权限修饰符 返回值类型 方法名(形参列表){
}
}
方法
语法:
访问权限修饰符 <X,...> 返回值类型 方法名(形参列表){
}
理解:数据类型的占位符
注意:
jdk1.5以后出现的
集合
作用:临时存储数据
与数据的区别:
数组长度不可变
集合长度可变
集合体系
Collection
方法:
size():获取集合中数据的个数(长度)
isEmpty():判断集合是否存储数据
iterator():获取迭代器
toArray():将集合转换为数组
add(T t):添加一个数据
addAll(Collection<T> c):添加一组数据
remove(T t):删除一个数据
removeAll(Collection<T> c):删除一组数据
clear():清空集合
子接口:
List
方法:
addAll(int index, Collection<? extends E> c);:插入多个数据
get(int index);获取指定位置的数据
set(int index, E element);修改
add(int index, E element);:指定位置插入单个数据
remove(int index);:删除指定位置的数据
特点:有序(存入顺序与取出顺序一致,称为有序)
子类:
ArrayList
数据结构:数组结构
优点:查询速度快
缺点:增加,删除速度慢
LinkedList
数据结构:链表
优点:增删速度快
缺点:查询速度慢
Vector
老版本的ArrayList
与ArrayList的区别是
Vector是线程安全的,jdk1.0提供的
ArrayList线程不安全,jdk1.2提供
Set
方法:
没有特于方法
特点:无序
子类:
HashSet
数据结构:红黑树(二叉树)+哈希表
LinkedHashSet(特点:有序)
数据结构:红黑树(二叉树)+哈希表+链表
TreeSet
注意:存储的数据要么拥有比较性,要么给TreeSet指定比较器
不会重复
方案1,让数据拥有比较性
1,存储的数据所在的类实现Comparable接口
2,重写compareTo
注意:返回值为0时表示数据一致
方案2,给TreeSet指定比较器
1,创建TreeSet时传入Comparator对象
2,重写compare方法