Java では、次のように、 を使用してからイテレータIterator
のメソッドを使用して.remove()
、イテレータによって返された最後の要素を削除できます。
import java.util.*;
public class ConcurrentMod {
public static void main(String[] args) {
List<String> colors = new ArrayList<String>(Arrays.asList("red", "green", "blue", "purple"));
for (Iterator<String> it = colors.iterator(); it.hasNext(); ) {
String color = it.next();
System.out.println(color);
if (color.equals("green"))
it.remove();
}
System.out.println("At the end, colors = " + colors);
}
}
/* Outputs:
red
green
blue
purple
At the end, colors = [red, blue, purple]
*/
Pythonでこれを行うにはどうすればよいですか? リストを for ループで繰り返し処理している間、リストを変更することはできません。これは、内容がスキップされるためです (こちらを参照)。Iterator
また、Javaのインターフェイスに相当するものはないようです。