1)迭代器问题
Collection中提供了一个方法
Iterator iterator()该方法用于返回当前集合的迭代器(迭代器:是用于遍历集合的,每种集合的内部实现不同,故迭代器的遍历方式不同)
Iterator接口 定义了三个方法
boolean hasNext():询问迭代器迭代的集合是否还有元素
Object next():获取下一个元素
void remove():删除刚刚迭代出来的元素
使用迭代器的流程——问->拿->删(也可以不删,但问和拿一定要联合使用)
用迭代器迭代时只能用迭代器的remove方法,不能使用集合的remove方法,否则在迭代过程中会产生异常
2)泛型
可以在我们使用某个类的时候,动态的给该类的属性或方法的参数返回指定类型
a.List接口中的get方法获取元素时直接是泛型指定类型,无须在进行造型了
b.迭代器也支持泛型:注意迭代器指定的泛型类型一定要和遍历的集合的泛型类型一致
c.当支持泛型的类,我们在使用时不指定泛型类型时,那么泛型默认的类型就是Object
自定义泛型:
语法:
在定义类的时候,在类名之后用<>定义泛型,泛型的命名可以是字母与数字的组合,数字不能是第一个字母,若指定多个泛型,中间用","分开
泛型类型只能是引用类型(包括包装类)
3)增强for循环,又叫新循环
新循环:其作用是遍历集合和数组的,不能用新循环代替传统循环
for(TYPE ele:array){
//循环体
}
TYPE:集合或数组的类型
ele:元素引用变量
array:要遍历的集合或数组的实例
新循环的循环次数由遍历的集合或数组长度决定,每次循环时,会将集合或数组中的元素
一次赋值给ele,然后进入循环体