Iterator迭代器接口
●Iterator对象称为迭代器(设计模式的一种),主要用于遍历 Collection 集合中的元素。
●Collection接口继承了java.lang.Iterable接口,该接口有一个iterator()方法那么所有实现了Collection接口的集合类都有一个iterator()方法,用以返回一个实现了Iterator接口的对象。
●Iterator 仅用于遍历集合,Iterator 本身并不提供承装对象的能力。如果需要创建Iterator 对象,则必须有一个被迭代的集合。
●集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
@Test
public void test2(){
Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry",20));
coll.add(new String("Tom"));
coll.add(false);
while (coll.iterator().hasNext()){
System.out.println(coll.iterator().next());
}
}
foreach 循环
●Java 5.0 提供了 foreach 循环迭代访问 Collection和数组。
●遍历操作不需获取Collection或数组的长度,无需使用索引访问元素。
●遍历集合的底层调用Iterator完成操作。
●foreach还可以用来遍历数组。
@Test
public void test1() {
Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new Person("Jerry", 20));
coll.add(new String("Tom"));
coll.add(false);
//for(集合元素的类型 局部变量 : 集合对象)
//内部仍然调用了迭代器。
for (Object obj : coll) {
System.out.println(obj);
}
}
普通for循环
@Test
public void test() {
String[] arr = new String[]{
"AA", "BB", "CC"};
//普通for循环
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
}