for循环中list add对象,最后发现是同一个。
错误代码:
public static void main(String[] args) {
    int [] arrs={1,2,3,4};
    String string=null;
    ArrayList<String> strings = new ArrayList<>();
    for (int i: arrs) {
        string=new String();
        string="值为:"+i;
        strings.add(string);
    }
    for (String s:strings){
        System.out.println(s);
    }
}是因为list add的是对象的引用。
 实际只创建了一个对象,所以add的都是这个对象。
解决方案
对象定义可以在外面,new 对象在for循环里面,这样每次都是一个新对象。
正确代码:
public static void main(String[] args) {
    int [] arrs={1,2,3,4};
    String string=null;
    ArrayList<String> strings = new ArrayList<>();
    for (int i: arrs) {
        string=new String(); // 这一句其实没有必要,只是为了说明要new对象
        string="值为:"+i;
        strings.add(string);
    }
    for (String s:strings){
        System.out.println(s);
    }
}                










