用于循环+ izip的Java或Groovy等效的python

时间:2010-09-13 17:32:58

标签: java python groovy for-loop foreach

有没有人知道使用izip的循环python的java或groovy等价物?

python示例:

for item_one, item_two in izip(list_one, list_two):

我想在java或groovy中做同样的事情

由于

3 个答案:

答案 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

  

提供一个尖头流,这是一个非空的拉链式流   跟踪流中索引(焦点)位置的结构。专注可以   通过流向前和向后移动,元素可以   在聚焦位置之前或之后插入,以及聚焦项目   可以删除。