list列表中添加多个【只修改了一个属性的对象】

来源:互联网 发布:大学手机必备软件 编辑:程序博客网 时间:2024/06/06 01:13
要添加一个objectBean对象到list中,不能使用对象A=对象B,这样的话完全使对象A的指针指向了B,他们表示的是一个区域了。添加到list中是以最后一个为准。下面是正确的代码。红色标记的是需要特别注意的地方。
package TestListObject;import java.util.Date;public class ObjectBean {   private String name;   private String sex;   private Date birthday;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}   }


 

package TestListObject;import java.util.ArrayList;import java.util.Date;import java.util.List;public class TestList {     public static void main(String[] args) {ObjectBean ob = new ObjectBean();ob.setName("liu");ob.setSex("女");ob.setBirthday(new Date());List<ObjectBean> beanlist = new ArrayList<ObjectBean>();beanlist.add(ob);for (int i = 0; i < 3; i++) {ObjectBean bean = new ObjectBean();bean.setBirthday(new Date(ob.getBirthday().getTime()+2*i*3600*1000));bean.setName(ob.getName());bean.setSex(ob.getSex()+i);beanlist.add(bean);}for (ObjectBean objectBean : beanlist) {System.out.println(objectBean.getBirthday()+objectBean.getSex());}}}

错误的代码:


 

package TestListObject;import java.util.ArrayList;import java.util.Date;import java.util.List;public class TestList {     public static void main(String[] args) {ObjectBean ob = new ObjectBean();ob.setName("liu");ob.setSex("女");ob.setBirthday(new Date());System.out.println(ob.getBirthday());ObjectBean bean = new ObjectBean();bean = ob;List<ObjectBean> beanlist = new ArrayList<ObjectBean>();for (int i = 0; i < 3; i++) {bean.getBirthday().setHours(ob.getBirthday().getHours()+2);System.out.println(bean.getBirthday());ObjectBean bean2 = new ObjectBean();bean2 = bean;beanlist.add(bean2);}}}