IteratorTest
package com.klvchen.java2;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
/*
集合元素的遍历操作,使用迭代器Iterator接口
1.内部的方法: hasNext() 和 next()
2.集合对象每次调用 iterator() 方法都得到一个全新的迭代器对象,
默认游标都在集合的第一个元素之前。
3.内部定义了 remove(),可以在遍历的时候,删除集合中的元素,此方法不同于集合直接调用remove()
*/
public class IteratorTest {
//iterator(): 返回Iterator接口的实例,用于遍历集合元素
@Test
public void test1(){
Collection col1 = new ArrayList();
col1.add(123);
col1.add(456);
col1.add(new Person("Jerry", 20));
col1.add(new String("Tom"));
col1.add(false);
Iterator iterator = col1.iterator();
//方式一
// 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());
//报异常:java.util.NoSuchElementException
// System.out.println(iterator.next());
//方式二:不推荐
// for (int i = 0; i < col1.size(); i++){
// System.out.println(iterator.next());
// }
//方式三:推荐
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
@Test
public void test2(){
Collection col1 = new ArrayList();
col1.add(123);
col1.add(456);
col1.add(new Person("Jerry", 20));
col1.add(new String("Tom"));
col1.add(false);
//删除集合中"Tom"
Iterator iterator = col1.iterator();
while (iterator.hasNext()){
Object obj = iterator.next();
if ("Tom".equals(obj)){
iterator.remove();
}
}
//遍历集合
iterator = col1.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
ForTest.java
package com.klvchen.java;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Collection;
public class ForTest {
@Test
public void test1(){
Collection col1 = new ArrayList();
col1.add(123);
col1.add(456);
col1.add(new Person("Jerry", 20));
col1.add(new String("Tom"));
col1.add(false);
//for(集合元素的类型 局部变量 : 集合对象)
//内部仍然调用了迭代器
for(Object obj : col1){
System.out.println(obj);
}
}
@Test
public void test2(){
int[] arr = new int[]{1, 2, 3, 4, 5, 6};
//for(数组元素的类型 局部变量 : 数组对象)
for (int i : arr){
System.out.println(i);
}
}
//练习题
@Test
public void test3(){
String[] arr = new String[]{"MM", "MM", "MM"};
//方式一:
//for (int i = 0; i < arr.length; i++){
// arr[i] = "GG";
//}
//方式二: 增强for循环
for (String s : arr){
s = "GG";
}
for (int i = 0; i< arr.length; i++){
System.out.println(arr[i]);
}
}
}