我的for循环在遍历包含对象的ArrayList上遇到问题。我创建了一个包含这些项目的ArrayList,LumberItem只是名称的字符串和金额的整数。
ArrayList<LumberItem> lumberList = new ArrayList<LumberItem>();
LumberItem wood1 = new LumberItem("Oak", 1500);
lumberList.add(0, wood1);
LumberItem b = new LumberItem("Pine", 1500);
lumberList.add(1,b);
LumberItem c = new LumberItem("Cedar", 1500);
lumberList.add(2, c);
LumberItem d = new LumberItem("Maple", 1500);
lumberList.add(3, d);
LumberItem exp = new LumberItem("Birch", 1500);
lumberList.add(4, exp);
我尝试像这样使用for循环
for(int i = 0; i < lumberList.size(); i++) {
contentTA.setText(lumberList.get(i).getType());
contentTA.append("\n at index" + i + "\n");
}
我的输出仅包含ArrayList中的最后一个元素,因此, 桦木被输出。我尝试过使用其他类似的循环方法
for(LumberItem l : lumberList)
当我尝试输出时,我仍然在ArrayList的末尾。我想知道为什么会这样,因为我还没有弄清楚。
答案 0 :(得分:1)
所以我是个白痴,我使用的是.setText(),每次调用它时都会清除JTextArea,所以应该是.append()!
for(LumberItem L : lumberList) {
contentTA.append("\n" + L.getType());
}
或
for(int i = 0; i < lumberList.size(); i++) {
contentTA.append(lumberList.get(i).getType());
会工作。 希望我的阅读能力差能帮助别人!