【发布时间】:2012-07-19 04:28:01
【问题描述】:
我想在 Java 中实现一个 Iterator,其行为类似于 Python 中的以下生成器函数:
def iterator(array):
for x in array:
if x!= None:
for y in x:
if y!= None:
for z in y:
if z!= None:
yield z
java 端的 x 可以是多维数组或某种形式的嵌套集合。我不确定这将如何工作。想法?
【问题讨论】:
-
那么,基本上你想遍历 z 维度中的值?
-
是的,并且可以选择使用一些谓词过滤器,如图所示。
-
我现在有点懒得写响应,但基本上你需要一个自定义迭代器。
-
顺便说一句,你也可以写成
(z for x in array if x is not None for y in x if y is not None for z in y if z is not None) -
另一种方式 - 编写“扁平嵌套”迭代器,如:codereview.stackexchange.com/questions/32827/…
标签: java python iterator generator