for (String item : someList) {
System.out.println(item);
}
使用“do while”等同于?
感谢的。
答案 0 :(得分:3)
如果列表为空,则for循环不会创建任何输出。所以等效的while循环是这样的:
if (!someList.isEmpty()) {
Iterator<String> iterator = someList.iterator();
do {
System.out.println(iterator.next());
} while (iterator.hasNext());
}
如果在do while循环之前没有检查空列表,则会得到NoSuchElementException
。
答案 1 :(得分:2)
List<String> someList = new ArrayList<>();
//put some values
for (String item : someList) {
System.out.println(item);
}
以前代码的等价物是:
int i = 0;
do {
System.out.println(someList.get(i));
i++;
} while (i < someList.size());
修改强>
或者像@Bathsheba在评论中提到的那样你可以使用hasNext()
:
//convert your List to Iterator
Iterator<String> itr = someList.iterator();
然后你可以循环抛出你的itr:
do {
System.out.println(itr.next());
} while (itr.hasNext());
注意强>
如果您不确定您的列表或itr是否为空,您应该在循环删除列表之前检查,如@cybi提及的答案。
if(!list.isEmpty()){
//loop throw your list or iterator
}
祝你好运。