У меня были проблемы со всей идеей итератора и вопросом в одном из моих викторин, я, честно говоря, не мог понять, что было.Iterator Confused
public static void main(String[] args)
{
Deque<String> SQ1 = new ArrayDeque<String>();
SQ1.add("Give");
SQ1.add("Me");
SQ1.add("The");
SQ1.add("Best");
SQ1.add("Of");
SQ1.add("Both");
SQ1.add("Worlds");
Iterator<String> It = SQ1.iterator();
while(It.hasNext())
{
if(It.next().equals("Give"))
System.out.print(It.next());
}
}
Это код, и вопрос в том, какой будет выход. Правильный ответ "Me"
, когда я думал, что это "Give"
. Я не понимаю, как проходит весь пробег.
Это то, что я понимаю: У этого есть next
. Если это next
равно "Give"
, он распечатает это значение next
. В этом случае это значение должно быть «Дать», не так ли?
Может кто-нибудь, пожалуйста, помогите мне понять это?
Внутри 'if' он называет' Next() равно (. «Дать») ', который ловит его, когда он выполняет итерацию' 'Дать «'. Затем при печати он снова вызывает 'next()', который выполняет итерацию на '' Me ''. – Tricky12
Спасибо! Это была одна из теорий, которые у меня были, но я думал, что это не имеет смысла. Спасибо, что освободили меня. – user5666676
'Возвращает следующий элемент в итерации.' - https://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html – Tricky12