在Java中从For转换为do

在Java中从For转换为do,java,Java,就像使用“do while”一样 谢谢 for (String item : someList) { System.out.println(item); } 然后你可以像这样循环投掷你的itr: int i = 0; do { System.out.println(someList.get(i)); i++; } while (i < someList.size()); //convert your List to Iterator Iterator<

就像使用“do while”一样

谢谢

 for (String item : someList) {
     System.out.println(item);
 }
然后你可以像这样循环投掷你的itr:

int i = 0;
do {
    System.out.println(someList.get(i));
    i++;
} while (i < someList.size());
//convert your List to Iterator
Iterator<String> itr = someList.iterator();
注意

如果您不确定您的列表或itr是否可以为空,您应该在循环抛出列表之前进行检查,如@cybi在其回答中提到

do {
    System.out.println(itr.next());
} while (itr.hasNext());
祝你好运

然后你可以像这样循环投掷你的itr:

int i = 0;
do {
    System.out.println(someList.get(i));
    i++;
} while (i < someList.size());
//convert your List to Iterator
Iterator<String> itr = someList.iterator();
注意

如果您不确定您的列表或itr是否可以为空,您应该在循环抛出列表之前进行检查,如@cybi在其回答中提到

do {
    System.out.println(itr.next());
} while (itr.hasNext());

祝你好运。

如果列表为空,for循环不会创建任何输出。因此,等效的do while循环类似于:

if(!list.isEmpty()){
   //loop throw your list or iterator
}
if(!someList.isEmpty()){
迭代器迭代器=someList.Iterator();
做{
System.out.println(iterator.next());
}while(iterator.hasNext());
}

如果在do while循环之前未检查空列表,则会得到一个
NoTouchElementException

如果列表为空,则for循环不会创建任何输出。因此,等效的do while循环类似于:

if(!list.isEmpty()){
   //loop throw your list or iterator
}
if(!someList.isEmpty()){
迭代器迭代器=someList.Iterator();
做{
System.out.println(iterator.next());
}while(iterator.hasNext());
}

如果在do while循环之前没有检查空列表,则会得到一个
NoSuchElementException

我将从使用迭代器(someList.Iterator())开始读取,如果需要进行迭代,则使用迭代器.hasNext()方法进行检查。我将从使用迭代器(someList.Iterator())开始读取如果需要进行迭代,请使用iterator.hasNext()方法进行检查。真正的等价物使用
hasNext()
&c。在iterator.check now@Bathsheba上,这就是你的意思吗?尽管对于链表,你刚刚创建了一个O(N*N)算法。真正的等价物使用
hasNext()
&c。在迭代器上。立即检查@Bathsheba这就是你的意思吗?我希望你得到接受的答案,谢谢我在我的答案中提到你的名字你可以检查,谢谢你提供的信息至少我们现在有了最好的答案。感谢您的提及。:-)顺便说一句,我认为对于一个等效循环,检查not empty是强制性的。我希望你得到接受的答案,谢谢你,我在我的答案中提到你的名字,你可以检查,谢谢你提供的信息,至少我们现在有了最好的答案。感谢您的提及。:-)顺便说一句,我认为检查notempty对于等效循环是强制性的。