我有一个简单的代码,我需要迭代列表并用XML编写
但问题是,有时候我的标签超出了,而且价值低于标签,所以我想在那里写一个“ - ”或类似的东西。
但是这样做时我遇到了问题。这是我想要做的。
while(iter1.hasNext()){
for (Object elementKey : tags) {
Here is the problem---->String value = iter1.next();
String element = (String) elementKey;
if(value!=null){
out.write("<"+element+">"+value+"</"+element+">");
}
else
out.write("<"+element+">"+"-"+"</"+element+">");
}
}
当Iterator没有任何东西时,它没有给我这样的元素例外
我必须在for循环中调用iter1.next()因为for循环的一次迭代我有迭代器的几个值。
就像你可以说我在for循环中有60个元素而对于这60个元素我只有56个从迭代器中获取这些值。有人告诉我一个好的数据结构吗?我该怎么办?
答案 0 :(得分:1)
您执行iter1.next()
几次(因为它在for循环中)为您执行的每个“hasNext()
”调用执行。要解决此问题,您需要移动iter1.next()
大于for循环。
答案 1 :(得分:1)
您在iter1.next();
的{{1}}循环中呼叫for each
,因此在您只调用tags
一次时可能会多次调用它!
您可能希望在iter1.hasNext()
循环之外声明您的变量:
for each
答案 2 :(得分:0)
问题是您为tags集合中的每个Object调用iter1.next()
。这将导致迭代器在您预期之前结束。
将String value = iter1.next();
放在'tags'循环之外。
答案 3 :(得分:0)
你在循环中执行next(),所以在检查下一项是否有1个确定后,你会尝试多次获取next
。
也许你应该在循环之前创建一个String实例然后使用它?
while(iter1.hasNext()){
String next = iter1.next()
for (Object elementKey : tags) {
String value = next;
...