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

/**
 * 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);
        }
    }
}


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

你可能感兴趣的:(集合)