一、数组和集合:
数组
数组长度固定 数组可以存储任意类型元素
集合
集合长度可变 集合只能存储引用类型元素
二、Collection
-public boolean add(E e): 把给定的对象添加到当前集合中 。
- public void clear() :清空集合中所有的元素。
- public boolean remove(E e): 把给定的对象在当前集合中删除。
- public boolean contains(Object obj): 判断当前集合中是否包含给定的对象。
- public boolean isEmpty(): 判断当前集合是否为空。
- public int size(): 返回集合中元素的个数。
- public Object[] toArray(): 把集合中的元素,存储到数组中
三、迭代器:
Collection
方法
Iterator iterator() 获取集合的迭代器
虽然在Collection中是抽象方法 但是任意的实现类都会重写此方法 并返回Iterator接口的实现类对象
Iterator
方法
boolean hasNext() 判断是否有元素
E next() 获取元素
tips:
在进行集合元素获取时,如果集合中已经没有元素了,还继续使用迭代器的next方法,将会抛出java.util.NoSuchElementException没有集合元素异常。
在进行集合元素获取时,如果添加或移除集合中的元素 , 将无法继续迭代 , 将会抛出ConcurrentModificationException并发修改异常。
四、增强for循环 foreach循环:
作用
遍历集合或者是数组 底层使用的就是迭代器所以在迭代的同时不可以修改集合的长度
格式
for(集合或数组存储元素的数据类型 变量名: 要遍历的集合或者是数组 ){
}
五、泛型:
1.定义和使用含有泛型的类
在创建对象的时候确定泛型
泛型类的定义格式
public class 类名<泛型变量>{
}
2.含有泛型的方法
调用方法时,确定泛型的类型
泛型方法的定义格式
修饰符 <泛型变量> 返回值类型 方法名(参数){
}
3.含有泛型的接口
(1)定义实现类时确定泛型的类型
(2)始终不确定泛型的类型,直到创建对象时,确定泛型的类型
泛型接口
public interface 接口名<泛型变量>{
}
六、泛型的上下限
上限限定 ? extends 类 只能传这个类 及其子类
下限限定 ? super 类 只能传这个类及其父类
public static void show(ArrayList<?> list){
for(Object obj :list){
System.out.println(obj);
}
}