Java ArrayList迭代问题:创建类对象列表后无法遍历输出元素
问题原因与解决方案
你的代码里存在一个关键疏漏:你创建了Test对象,但从来没把这些对象添加到定义好的ArrayList itr 中,所以迭代列表时它是空的,自然没有任何输出。
核心问题点
在第一个for循环里,你每次实例化Test t并给属性赋值,但缺少了将对象加入列表的关键步骤——没有执行itr.add(t)把对象存入集合。
修正后的完整代码
import java.util.*; class Test { int N; String s; } public class Main { public static List<Test> itr = new ArrayList<Test>(); public static void main(String args[]) { int i; for(i = 0; i < 12; i++) { Test t = new Test(); t.N = i; if(i % 2 == 0) { t.s = "Even"; } else { t.s = "Odd"; } // 新增:把创建好的Test对象添加到列表中 itr.add(t); } for(Test t : itr) { System.out.println(t.N + " " + t.s); } } }
预期运行输出
执行修正后的代码,就能得到你想要的结果:
0 Even 1 Odd 2 Even 3 Odd 4 Even 5 Odd 6 Even 7 Odd 8 Even 9 Odd 10 Even 11 Odd
可选优化建议
为了让代码更符合Java编码规范,还可以做这些调整:
- 将Test类的属性名改为小驼峰格式(比如
N改成number,s改成status) - 给Test类添加构造方法,简化对象创建流程
- 使用更具语义的变量名(比如
itr改成testList)
内容的提问来源于stack exchange,提问作者NARASHIMA M
相关产品推荐
相关产品推荐

