如何从同一个it.next()获取多个值

时间:2014-04-17 11:19:28

标签: java arrays iterator

List<Drank> dranken = admin.getBestelling().getDranken();
Iterator<Drank> it = dranken.iterator();
while (it.hasNext()) {
     String name = it.next().getName();
     String description = it.next().getDescription();   
     model.addRow(new Object[]{name,description});
}   

这是我们的代码。我们想循环遍历数组。 问题是,如果你使用it.next(),它总是转到下一个值,因为我们有getName()getDescription(),它总是跳过名称或描述,制作价值&#39;彼此不匹配,

有什么建议吗?

3 个答案:

答案 0 :(得分:4)

使用变量存储下一个元素。

 Drank next = it.next();
 String name = next.getName();
 String description = next.getDescription(); 

答案 1 :(得分:2)

仅使用it.next()一次,并将结果输入Drank变量,如@ user1906108所示。

或者,您可以使用增强的for循环,并完全摆脱迭代器的代码:

ArrayList<Drank> dranken = admin.getBestelling().getDranken();

for (Drank d : dranken) {
     String name = d.getName();
     String description = d.getDescription();   
     model.addRow(new Object[]{name,description});
}

甚至更短,因为这里你真的不需要额外的变量:

ArrayList<Drank> dranken = admin.getBestelling().getDranken();

for (Drank d : dranken) {
     model.addRow(new Object[]{ d.getName(), d.getDescription()});
}

答案 2 :(得分:2)

将其更改为此

while (it.hasNext()) {
     Drank item = it.next();
     String name = item.getName();
     String description = item.getDescription();   
     model.addRow(new Object[]{name,description});
}