当在循环外部new对象时,循环内的每次循环都是添加的该对象的引用,最后导致集合中对象属性相同。 import java.util.ArrayList; import java.util.List; public class test3 { public static void main(String[] args) { User user = new User(); List<User> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { user.setId(i); list.add(user); } list.forEach(System.out::println); } } class User{ private Integer id; private String name; public User() { } public User(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '\'' + '}'; } }