有没有人知道使用izip的循环python的java或groovy等价物?
python示例:
for item_one, item_two in izip(list_one, list_two):
我想在java或groovy中做同样的事情
由于
答案 0 :(得分:2)
我认为groovy没有内置的izip,但这里有一个可能的实现:
def izip(iters) {
return [
hasNext: { -> iters.every{it.hasNext()} },
next: { -> iters.collect{it.next()} },
remove: { -> }
] as Iterator
}
list_one = [1,2,3]
list_two = ['a', 'b', 'c']
izip([list_one.iterator(), list_two.iterator()]).each {
println it
}
答案 1 :(得分:0)
Java中最接近的等价物(假设两个列表具有相同的长度/大小)
Object item_one, item_two;
for (int i=0; i<list_one.length; i++)
{
item_one = list_one.get(i);
item_two = list_two.get(i);
}
即,您必须同时在列表上进行迭代。这只是一个例子,它也可以用迭代器完成。
答案 2 :(得分:0)
另一种选择是使用FunctionalJava&#39; Zipper:
提供一个尖头流,这是一个非空的拉链式流 跟踪流中索引(焦点)位置的结构。专注可以 通过流向前和向后移动,元素可以 在聚焦位置之前或之后插入,以及聚焦项目 可以删除。