本帖最后由 yin13753884368 于 2016-8-4 15:42 编辑  
 
package com.heima.task; 
import java.util.ArrayList; 
import java.util.Iterator; 
public class Demo6_Test { 
        /** 
         定义一个replaceAll方法,将传入的新值替换集合中的老值(list,old,newo) 
         */ 
        public static void main(String[] args) { 
                ArrayList<String> list = new ArrayList<>(); 
                list.add("d"); 
                list.add("8"); 
                list.add("7"); 
                replaceAll(list, "7", "9"); 
        } 
        public static void replaceAll(ArrayList<String> list, String old , String newo) { 
              //第一种方法                 
                for (int i = 0; i < list.size(); i++) { 
                        if(old.equals(list.get(i))) { 
                                list.set(i, newo); 
                        } 
                } 
                for (String string : list) { 
                        System.out.println(string);                 }                 //两个for循环后,得出的结果是 d 8 9; 
                
               //第二种方法 
               Iterator<String> it = list.listIterator(); 
                while(it.hasNext()) { 
                        String s = it.next(); 
                        if (old.equals(s)) { 
                                s = newo; 
                        } 
                        System.out.println(s); 
                } 
                //这样的结果也是 d 8 9;但是在加个for循环值就变成原值了d 8 7; 
                 
                for (String string : list) { 
                        System.out.println(string);                 }                 为什么吗会这样呢?         } 
} 
 
求大神们告知,正在苦恼中。。。。。。。   
 
 
 
 |