使用泛型是不是不能再使用Iterator遍历了呢??
import java.util.ArrayList;
import java.util.Iterator;public class Test1 { public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add("遇见");
a.add("3");
a.add("34");
a.add("胜利滋味");
Iterator it = a.iterator();//报错了,
while(it.hasNext()){
String s =it.next();
System.out.println(s);

}
}
}而不使用Iterator就没有问题??
import java.util.ArrayList;
public class Test1 { public static void main(String[] args) {
ArrayList<String> a = new ArrayList<String>();
a.add("哈哈");
a.add("3");
a.add("34");
a.add("胜利滋味");
for(int i = 0;i<a.size();i++){
String s = a.get(i);
System.out.println(s);


}
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【peterbob】截止到2008-07-05 16:06:55的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:40                       
    结贴的总数量:3                        结贴的总分数:40                       
    无满意结贴数:1                        无满意结贴分:20                       
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:33.33 %               无满意结分率:50.00 %                  
    敬礼!
      

  2.   

    Iterator<String> it = a.iterator()
    如果不写类型参数就变成了原生类型,原生类型对应的类用Object进行类型擦除,这时要需要强制转换:
    String s = (String)it.next();
      

  3.   

    第一段代码  改成这样 Iterator<String> it = a.iterator();  
      

  4.   


    import java.util.ArrayList;
    import java.util.Iterator;public class Test { public static void main(String[] args) {
    ArrayList<String> a = new ArrayList<String>();
    a.add("遇见");
    a.add("3");
    a.add("34");
    a.add("胜利滋味");
    Iterator<String> it = a.iterator();
    while (it.hasNext()) {
    String s = it.next();
    System.out.println(s); }
    }
    }或者import java.util.ArrayList;
    import java.util.Iterator;public class Test { public static void main(String[] args) {
    ArrayList<String> a = new ArrayList<String>();
    a.add("遇见");
    a.add("3");
    a.add("34");
    a.add("胜利滋味");
    Iterator it = a.iterator();
    while (it.hasNext()) {
    String s = (String)it.next();
    System.out.println(s); }
    }
    }
      

  5.   

    import java.util.*;public class Test2 { public static void main(String[] args) {
    ArrayList<String> a = new ArrayList<String>();
    a.add("遇见");
    a.add("3");
    a.add("34");
    a.add("胜利滋味");
    Iterator<String> it = a.iterator();  //没错了!
    while (it.hasNext()) {
    String s = it.next();
    System.out.println(s);
    }
    }}
      

  6.   

    import java.util.ArrayList; 
    import java.util.Iterator; public class Test1 { public static void main(String[] args) { 
    ArrayList <String> a = new ArrayList <String>(); 
    a.add("遇见"); 
    a.add("3"); 
    a.add("34"); 
    a.add("胜利滋味"); 
    Iterator it = a.iterator();//报错了, 
    while(it.hasNext()){ 
    String s =(String)it.next(); //跌代后要转成对应的对象,这就是错的原因.
    System.out.println(s); } 


    原代码不变,String s =it.next();改成String s =(String)it.next();就OK了.