【发布时间】:2020-09-03 07:59:26
【问题描述】:
我正在寻找一种方法来迭代 Java 中的两个元素
例如: 我有这个列表:{“e1”,“e2”,“e3”,“e4”}
我想在第一次迭代时得到 { "e1" , "e2" } ,第二次 { "e2" , "e3" }
我已经找到了一种使用 Python 和 itertools 执行此操作的方法,如下所示:
import itertools
from itertools import tee
def pairwise(iterable):
a, b = tee(iterable)
next(b, None)
return zip(a, b)
...
for e1,e2 in pairwise(list) :
# creating an element using e1 and e2
我知道我可以在 Java 中手动完成,但我想问是否有明确的方法可以做到这一点,谢谢您的帮助
【问题讨论】:
-
那么为什么要使用
python标签? -
@timgeb 我很久以前就已经在遗传算法上使用过它并且它有效
-
@timgeb 好吧,这就是我想要的,其实很抱歉写错了,我编辑了它
-
@TraianGEICU 它将在到达之前停止,例如 { e1 , e2 , e3 , e4 } : ( e1,e2) ( e2,e3 ) (e3,e4 )
-
你必须使用你自己的迭代器来实现你自己的接口列表。 List 的实现可以是 ArrayList(或其他)的扩展,但 Iterator 你必须实现一个新的。