1. 迭代器(Iterator)的作用? 用来遍历集合元素的。 2. 如何获取迭代器(Iterator)对象? Iterator iterator = coll.iterator(); 3. 如何实现遍历(代码实现) while(iterator.hasNext()){ System.out.println(iterator.next()); //next():①指针下移 ② 将下移以后集合位置上的元素返回 } 4. 增强for循环(foreach循环)的使用(jdk5.0新特性) 4.1 作用 用来遍历数组、集合。 4.2 格式: for(要遍历的集合或数组元素的类型 临时变量 : 要遍历的集合或数组变量){ 操作临时变量的输出 } 4.3 说明: > 针对于集合来讲,增强for循环的底层仍然使用的是迭代器。 > 增强for循环的执行过程中,是将集合或数组中的元素依次赋值给临时变量,注意,循环体中对临时变量的修改,可能 不会导致原有集合或数组中元素的修改。
public class ForTest {
@Test
public void test(){
Collection coll = new ArrayList();
coll.add("AA");
coll.add("BB");
Person p1 = new Person("Tom",12);
coll.add(p1);
coll.add(128);//自动装箱
coll.add(new String("尚硅谷"));
for(Object obj : coll){
System.out.println(obj);
}
}
@Test
public void test2(){
int[] arr = new int[]{1,2,3,4,5};
for(int i : arr){
System.out.println(i);
}
}
@Test
public void test3(){
String[] arr = new String[]{"GG","JJ","DD","MM","SS"};
for(String s : arr){
System.out.println(s);
}
}
}
public class IteratorTest {
@Test
public void test1(){
Collection coll = new ArrayList();
coll.add("AA");
coll.add("AA");
Person p1 = new Person("Tom",12);
coll.add(p1);
coll.add(128);//自动装箱
coll.add(new String("尚硅谷"));
//获取迭代器对象
Iterator iterator = coll.iterator();
// System.out.println(iterator.getClass());
//方式1:
// System.out.println(iterator.next());
// System.out.println(iterator.next());
// System.out.println(iterator.next());
// System.out.println(iterator.next());
// System.out.println(iterator.next());
// System.out.println(iterator.next());//如果超出了集合中元素的个数,会报NoSuchElementException异常
//方式2:
// for(int i = 0;i < coll.size();i++){
// System.out.println(iterator.next());
// }
//方式3:推荐
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
@Test
public void test2(){
Collection coll = new ArrayList();
coll.add("AA");
coll.add("BB");
Person p1 = new Person("Tom",12);
coll.add(p1);
coll.add(128);//自动装箱
coll.add(new String("尚硅谷"));
//方式1:错误的遍历
// Iterator iterator = coll.iterator();
//
// while((iterator.next()) != null){
// System.out.println(iterator.next());
// }
//方式2:错误的遍历
//每次调用coll.iterator(),都会返回一个新的迭代器对象。
while(coll.iterator().hasNext()){
System.out.println(coll.iterator().next());
}
}
}
ps:来源尚硅谷