赞
踩
import java.util.ArrayList; import java.util.List; /** * 功能描述 * */ public class ListAddObject { /** * 创建一个Student类 只有一个id属性 */ static class Student { private int Id; public void setId(int Id) { this.Id = Id; } @Override public String toString() { return "id = " + Id; } } public static void main(String[] args) { //list1代码块示例 最后结果会出错 List<Student> list1 = new ArrayList<>(); //在for循环外实例化对象,常犯的错误 Student stu1 = new Student(); for (int i = 0; i < 3; i++) { stu1.setId(i); list1.add(stu1); } System.out.println("list1: " + list1); //list2代码块示例 常规解决方法 List<Student> list2 = new ArrayList<>(); for (int i = 0; i < 3; i++) { //解决办法1:循环内实例化对象 Student stu2 = new Student(); stu2.setId(i); list2.add(stu2); } System.out.println("list2: " + list2); //list3代码块示例 推荐的方法(节约栈内存) List<Student> list3 = new ArrayList<>(); //解决办法2:for循环外定义变量,循环内实例化对象 Student stu3 = null; for (int i = 0; i < 3; i++) { stu3 = new Student(); stu3.setId(i); list3.add(stu3); } System.out.println("list3: " + list3); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。