В игре у меня есть список игроков, скажем так:
LinkedList<String> players = new LinkedList<String>();
Я хочу, чтобы каждый игрок взаимодействовал с каждым из других игроков, поэтому я пишу два вложенных цикла:
Iterator<String> i1 = players.iterator();
while (i1.hasNext()) {
String p1 = i1.next();
Iterator<String> i2 = players.iterator();
// But I want to do this: Iterator<String> i2 = i1.clone();
while (i2.hasNext()) {
String p2 = i2.next();
System.out.println("Interact: " + p1 + ", " + p2);
}
}
Поскольку я хочу, чтобы каждая пара игроков взаимодействовала один раз, я хочу запустить внутренний цикл с игроком после текущего текущего игрока. Поэтому я хочу клонировать итератор, но это не компилируется.
Итак, что мне делать вместо этого?