读书人

批改集合中实例的值对集合的影响

发布时间: 2012-07-02 17:46:22 作者: rapoo

修改集合中实例的值,对集合的影响

/** * User: liuwentao * Time: 11-11-16 下午5:30 */public class Object1 {    public void showInfo() {        System.out.println(this.getName());    }       private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}


1.将上面的对象实例装入List 然后 设置为null (无影响)

/** * User: liuwentao * Time: 11-11-16 下午5:28 */public class NullForList1 {    public static void main(String[] args){        List<Object1> list = new ArrayList<Object1>();        Object1 obj  = null;        for (int i = 0 ;i < 3; i++) {            obj= new Object1();            obj.setName("名字:"+i);            list.add(obj);                        obj = null; //obj 设置成 null        }        for (Object1 testObject : list) {            testObject.showInfo();        }    }}





2.obj装入list后,再修改obj的属性 (有影响)

/** * User: liuwentao * Time: 11-11-16 下午5:28 */public class ModiForList1 {    public static void main(String[] args){        List<Object1> list = new ArrayList<Object1>();        Object1 obj  = null;        for (int i = 0 ;i < 3; i++) {            obj= new Object1();            obj.setName("名字:"+i);            list.add(obj);            obj.setName("刘文涛"); //obj装入list后,再修改obj的属性        }        for (Object1 testObject : list) {            testObject.showInfo();        }    }}



3.将String实例装入List 然后 设置为null (无影响)
/** * User: liuwentao * Time: 11-11-16 下午5:28 */public class NullForList2 {    public static void main(String[] args){        List<String> list = new ArrayList<String>();        String str  = null;        for (int i = 0 ;i < 3; i++) {            // str= new String("名字." + i);             str= "名字." + i; //与 上一行 效果一样            list.add(str);            str = null;// str 设置成 null        }        for (String str2 : list) {            System.out.println(str2);        }    }}



4.String装入list后,再修改 String 的值 (无影响)
/** * User: liuwentao * Time: 11-11-16 下午5:28 */public class ModiForList2 {    public static void main(String[] args){        List<String> list = new ArrayList<String>();        String str  = null;        for (int i = 0 ;i < 3; i++) {            // str= new String("名字." + i);             str= "名字." + i; //与 上一行 效果一样            list.add(str);            str = "刘文涛";// 修改str的值        }        for (String str2 : list) {            System.out.println(str2);        }    }}



5:Integer 与 String 完全一样
/** * User: liuwentao * Time: 11-11-16 下午5:28 */public class ModiForList3 {    public static void main(String[] args){        List<Integer> list = new ArrayList<Integer>();        int j = 0;        for (int i = 0 ;i < 3; i++) {            j = new Integer(i);           // j = i; //与 上一行 效果一样            list.add(j);            j = 250;// 修改j的值        }        for (Integer j2 : list) {            System.out.println(j2);        }    }}




读书人网 >移动开发

热点推荐