Java 集合 add 方法重复添加问题

【Java 集合 add 方法重复添加问题】首先需要知道的是,在 add 方法里面,对于引用类型的对象,存放的是引用类型的地址,尤其是当我们使用 new 出来的对象并调用集合中的 add 方法来添时,当改变了该对象的属性,但该对象的地址并没有改变,所以当对象里面的属性改变的时,原本存放在集合里面的内容也会跟着一起改变,并在添加的过程中添加重复的内容放集合中去,避免的方法就是每次添加的时候重新 new 来开辟新的内存空间来保存对象信息,若需要添加多个,则应当在循环里面定义。
举例说明

//定义一个老师,赋予值 Teacher teacher = new Teacher("Mike","男"); //存放老师 List teacherList = new ArryList(); teacherList.add(teacher);

这个时候集合里面只有 Mike 老师的信息,接着
//把 teacher 重新赋值添加到集合中 teacher.setName("Marry"); teacher.setSex("女"); teacherList.add(teacher);

这个时候就需要注意了,由于 teacher 对象并没有改变内存中的地址,所以此时集合中存放着的 Mike 的信息就会比变成 Marry 的信息,在调用 add 方法后又会继续添加一个 Marry 老师到集合中去,造成了俩个 Marry 在集合当中。
正确的做法:
//添加时重新 new Teacher 对象 for(int i = 0,i

这样不仅每次添加时避免掉了重复问题,也因为是局部变量在循环结束时会回收内存空间,避免了资源的浪费。

    推荐阅读