这个FOR循环怎么改成FOR each 循环呢?
for(int index=0;index<list.size();index++)
textArea.append(list.get(index)+newLine);
很清楚FOR each 循环的大哥大姐能给我再讲解下吗?我不是很明白啊

解决方案 »

  1.   

    for(String s : list)
          textArea.append(s+newLine);
    可以在实现了Iterable接口的类上使用这种foreach,Collection接口继承Iterable接口
    所以所以Collection接口的实现者都实现iterator方法,返回一个迭代器,所以Collection都可以使用foreach
    List自然也是可以的
      

  2.   

    Type mismatch: cannot convert from element type Object to String  2楼的出这个问题
      

  3.   

    类型转换的问题
    提示的意思 不能从object到String
      

  4.   

    for(String s : list)
      textArea.append(s+newLine);
      

  5.   

    呃,你list装的是什么东西就把String改为那种类型,自己改一下了
    比如是Object类型,改成
    for(Object o : list)
      textArea.append(o.toString()+newLine);
      

  6.   


    public class ForEachTest {
    public static void main(String[] args) {
    int[] a = { 1, 2, 3, 4, 5 };
    int[] b = new int[10];
    for (int i : b) {
    b[i] = 0;
    }
    for (int i : b) {
    System.out.print(b[i]);
    }
    System.out.println();
    System.arraycopy(a, 0, b, 0, 5);
    for (int i : b) {
    System.out.print(b[i]);
    } }
    }
      

  7.   

    可以指定list中放的数据类型
    List<String> list = new ArrayList<String>();
    for(String str : list){
       textArea.append(str+newLine);
    }
      

  8.   

    for each 我就在JSP里 用JSTL的时候用过 帮你顶吧
      

  9.   

    这要看你的list里存的是什么数据类型。import java.util.*;
    public class ok {
        public static void main(String[] args) {
         List<Integer> list=new ArrayList<Integer>();
         for(int i=0;i<8;++i){
         list.add(i+1);
         }
         for(int k:list){
         System.out.println(k);
         }
        }
    }其中的for each循环相当于:for(int k=0;k<list.size();++k){
         System.out.println(list.get(k));
         }for each循环只适合遍历整个数组,如果只是对数组中某些元素操作还是要用for循环。
      

  10.   

    这是我个人理解for each 的小例子:public static void main(String[]args){
    //建立一个数组 集合里面都是int 型
    int[] intxx  = new int[]{1,2,3,4,5};
    //建立一个集合      集合里面都是String 类型
    List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    //开始for each   
    /*相当于左边用一组 int 类型的无名的集合把 intxx 数组里面的“数据”都搜集起来,
    用i分别表现出来     (intxxx里面有几条内容就循环几次!!!就是所谓的遍历!!)*/
    for(int i : intxx ){      
    System.out.println(i); //循环第几次,i 就是intxxx中的第几个内容的值!!!
    i = 100;               
    /*注意:   这里面对i的修改的只是无名集合的修改,对原数据intxxx不会产生影响!!   
    所以说for each 只能遍历查看原来数据,而不能修改数据*/
    }
    //同理,也可以对集合进行遍历!!!   list是什么类型,就用什么类型来收集,所以用(String i:list)
    for(String i : list){      
    System.out.println(i);
    }
    //这是我的不正规理解,具体的运行机制我不知道,不过这样理解起来我感觉很容易~~~~~~~
    }
    这样理解是不是好点呢?
      

  11.   

    package bao4;import java.util.ArrayList;
    import java.util.Iterator;public class Name1 {
    public  String name;
    public int age;
    public int sal;
    public Name1(){

    }
    //定义构造方法进行初始化的时候传递参数
    public Name1(String name,int age,int sal){
    this.name=name;
    this.age=age;
    this.sal=sal;
    }
    //获取名字参数
    public String getName(){
    return name;
    }
    //获取年龄参数
    public int getAge(){
    return age;
    }
    //获取工资参数
    public int getSal(){
    return sal;
    }
    //在这个类中的main方法可以直接通过方法调用该方法
    public static void say(){
    Name1 name1=new Name1("程飞艳",24,3000);
    Name1 name2=new Name1("张晓亚",22,4000);
    Name1 name3=new Name1("张天明",26,5000);
    Name1 name4=new Name1("赵伟南",23,6000);
    Name1 name=new Name1();
    //给集合ArrayList<Name1>设置了一个参数,
    //说明该集合中只能添加Name1类型的元素
    //其他类型的元素,不能添加否则会报错
    ArrayList<Name1> list=new ArrayList<Name1>();
    list.add(name1);//增添新元素
    list.add(name2);
    list.add(name3);
    list.add(name4);
    //用相同类型的数据接收集合中的元素,不需要强制转型
    Name1 na=list.get(2);
    //通过类名直接输出类中的元素
    System.out.println(na.name+"   "+na.age+"   "+na.sal+"   ");
    System.out.println("***********************");
    for(int a=0;a<list.size();a++){
    System.out.println(na.name+"   "+na.age+"   "+na.sal+"   ");
    }
    System.out.println("-----------------------");
    for(Name1 n:list){
    System.out.println(n.name+"   "+n.age+"   "+n.sal+"   ");
    }
    System.out.println("------------------------");
    //利用iterator()方法遍历集合中的所有元素
    Iterator it=list.iterator();
    while(it.hasNext()){//判断集合中是否有下一个元素
    Name1 a=(Name1)it.next();//如果有就将其转化成其原来的Name1对象
    //然后通过对象引用进行输出对象中的各个属性(成员变量)
    System.out.println(a.getName()+"   "+a.getAge()+"   "+a.getSal());
    }
    }
    public static void main(String[] args){
    say();//在自己的类内设置main()方法,静态的可以这样直接用方法名调用
    }
    }
    //class TextName1{
    //
    // public static void main(String[] args){
    // Name1 nana=new Name1();//在不同类中,虽然是静态方法,也不能直接用方法名调用方法
    // nana.say();//必须通过实例名调用
    // }
    //}
      

  12.   

    非常感谢大家的回答,问题解决了 是我的定义一开始是用的list=new ArrayList();改成
    list = new ArrayList<String>();就好了