300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Java 集合 add 方法重复添加问题

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

时间:2021-03-17 23:21:24

相关推荐

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

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

举例说明👇

//定义一个老师,赋予值Teacher teacher = new Teacher("Mike","男");//存放老师List<Teacher> 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<length;i++){Teacher teacher = new Teacher();teacher.setName("Marry");teacher.setSex("女");teacherList.add(teacher);}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。