Java双重for循环遇到的坑


Java双重for循环中,最外层new的对象,里面的for循环一定不要共用!

代码如下:

package test;

import java.util.ArrayList;
import java.util.List;

public class TestObject {

public static void main(String[] args) {
List<TestUser> list = getList();
System.out.println(list.toString());
}
private static List<TestUser> getList() {
List<TestUser> list = new ArrayList<TestUser>();
List<TestUser> list1 = new ArrayList<TestUser>();
for (int i = 0; i < 2; i++){
TestUser user = new TestUser();
user.setName("小明" + i);
user.setAge(i);
list.add(user);
System.out.println(list.toString());
for (int j = 1; j < 2; j++){
//TestUser user1 = new TestUser();
user.setName("小红" + j);
user.setAge(j);
list1.add(user);
System.out.println(list1.toString());
}
}
list.addAll(list1);
return list;
}
}
class TestUser{

public TestUser() {
super();
}

private String name;
private Integer age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "TestUser [name=" + name + ", age=" + age + "]";
}



}

 

 

控制台输出打印结果:

[TestUser [name=小明0, age=0]]
[TestUser [name=小红1, age=1]]
[TestUser [name=小红1, age=1], TestUser [name=小明1, age=1]]
[TestUser [name=小红1, age=1], TestUser [name=小红1, age=1]]
[TestUser [name=小红1, age=1], TestUser [name=小红1, age=1], TestUser [name=小红1, age=1], TestUser [name=小红1, age=1]]


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM