import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.junit.Test;
public class IteratorTest {
@Test
public void test1(){
Collection coll = new ArrayList();
coll.add(123);
coll.add(456);
coll.add(new String("Tom"));
coll.add(false);
Iterator iterator = coll.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());*/
//报异常:NoSuchElementException
/*System.out.println(iterator.next());*/
//方式二:不推荐
/*for(int i = 0;i < coll.size();i++){
System.out.println(iterator.next());
}*/
//方式三:推荐
hasNext():判断是否还有下一个元素
while(iterator.hasNext()){
//next():①指针下移 ②将下移以后集合位置上的元素返回
System.out.println(iterator.next());
}
//错误方式一:
/*while((iterator.next()) != null){
System.out.println(iterator.next());
}*/
//错误方式二:
//集合对象每次调用iterator()方法都得到一个全新的迭代器对象,默认游标都在集合的第一个元素之前。
/*while (coll.iterator().hasNext()){
System.out.println(coll.iterator().next());
}*/
}
}
import org.junit.Test;
public class ForTest {
@Test
public void test3(){
String[] arr = new String[]{"MM","MM","MM"};
//方式一:普通for赋值 这种方式对arr数据内容是可以修改成功的
/*for(int i = 0;i < arr.length;i++){
arr[i] = "GG";
}*/
//方式二:增强for循环 ,相当于对获得到的内容进行修改,并不会对原数组内容进行修改
for(String s : arr){
s = "GG";
}
//输出的还是MM
for(int i = 0;i < arr.length;i++){
System.out.println(arr[i]);
}
}
}