Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java或Groovy与python for loop+;伊齐普_Java_Python_Groovy_For Loop_Foreach - Fatal编程技术网

Java或Groovy与python for loop+;伊齐普

Java或Groovy与python for loop+;伊齐普,java,python,groovy,for-loop,foreach,Java,Python,Groovy,For Loop,Foreach,有人知道使用izip的java或groovy相当于python for循环吗 python示例: for item_one, item_two in izip(list_one, list_two): 我想用java或groovy做同样的事情 谢谢Java中最接近的等价物是(假设两个列表的长度/大小相同) 对象项一、项二; 对于(int i=0;i,我认为groovy没有内置与izip等效的工具,但这里有一个可能的实现: def izip(iters) { return [

有人知道使用izip的java或groovy相当于python for循环吗

python示例:

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

我想用java或groovy做同样的事情


谢谢

Java中最接近的等价物是(假设两个列表的长度/大小相同)

对象项一、项二;

对于(int i=0;i,我认为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
}
另一个选项是使用的:

提供一个指向的流,它是一个非空的类似拉链的流 跟踪流中索引(焦点)位置的结构。焦点可以 可以在流中前后移动,元素可以 在聚焦位置之前或之后插入,以及聚焦项目 可以删除


对那些不熟悉Python的人的解释:izip构造了一个惰性迭代器,它从传递给
izip
的每个iterable中提取下一项,并将它们作为元组生成,直到所有iterable都用完为止。这个iterable的groovy等价物是list_one.eachWithIndex{one,i->two=list_two[i];}对不起,我应该说得更清楚些……我知道,但我想要更好的。
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
}