1 Collection
1.1 数组和集合的区别
1.数组的长度是固定的。集合的长度是可变的。
2.数组中存储的是同一类型的元素,可以存储基本数据类型值。集合存储的都是对象。而且对象的类型可以不一致。
1.2 常用方法
public boolean add(E e);把给定的对象添加到当前集合中 。
public void clear();清空集合中所有的元素。
public boolean remove(E e);把给定的对象在当前集合中删除。
public boolean contains(E e);判断当前集合中是否包含给定的对象。
public boolean isEmpty();判断当前集合是否为空。
public int size();返回集合中元素的个数。
public Object[] toArray();把集合中的元素,存储到数组中。
这些方法可用作所有的单列集合。
2 Iterator 接口
Iterator主要用于迭代访问Collection中的元素。
迭代即先判断集合中有无元素,如果有则取出来,一直重复到集合中没有元素。
2.1 Iterator的创建
public Iterator iterator();获取集合对应的迭代器,用来遍历集合中的元素的。
使用对象调用iterator方法,返回iterator对象。
对象是属于什么泛型的集合,iterator也是什么泛型的。
2.2 常用方法
public E next();返回迭代的下一个元素。
public boolean hasNext();如果仍有元素可以迭代,则返回 true。
2.3 增强for循环
增强for循环是专门用来遍历数组和集合的,内部实现是Iterator迭代器,不能对元素进行增删操作。
使用格式:
for(元素的数据类型 变量 : Collection集合or数组){
代码
}
3 泛型
3.1 定义和使用带有泛型的类
定义格式:
修饰符 class 类名<代表泛型的变量> { }
在创建对象时确定泛型。
3.2 定义和使用含有泛型的方法
定义格式:
修饰符 <代表泛型的变量> 返回值类型 方法名(参数){ }
调用方法时,确定泛型的类型。
3.3 含有泛型的接口
定义格式:
修饰符 interface 接口名<代表泛型的变量> { }
1.定义实现类时确定泛型的类型。
2.直到创建对象时,才确定泛型的类型。
3.4 泛型通配符<?>
不知道使用什么泛型来接收时,此时可以用?,?表示泛型通配符。此时只能接收,不能存放数据。(一般在方法形参)
使用示例:
public static void main(String[] args) {
Collection<Intger> list1 = new ArrayList<Integer>();
getElement(list1);
Collection<String> list2 = new ArrayList<String>();
getElement(list2);
}
public static void getElement(Collection<?> coll){}
通配符高级使用
泛型的上限:
格式: 类型名称 <? extends 类 > 对象名称
意义: 只能接收该类型及其子类
泛型的下限:
格式: 类型名称 <? super 类 > 对象名称
意义: 只能接收该类型及其父类型