问题标签 [iterable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3972 浏览

java - 实现 Iterable 接口

我刚刚在一张旧试卷中找到了这个考试题,并正在为即将到来的考试做准备。我想不明白 :

下面描述了一个人为的部分类,它实现了 Iterable 接口。此类的唯一目的是提供一种方法来迭代属性things.

我们需要在课堂上填写两件事来完成它。这是课程

我猜它应该类似于:

不过,我不确定如何充实这个问题的答案,有人可以帮忙吗?

0 投票
1 回答
2588 浏览

scala - 迭代任意长度的元组

我刚开始使用 Scala 并遇到了一个问题:

Scala 有 Types Tuple1, Tuple2, ..., Tuple22. Scalaquery 在遍历查询时返回元组。

我现在有一个给定的类(ZK's ListitemRenderer),它接受Objects 并用行填充 gui 列表,每行包含一些单元格。但ListitemRenderer不是通用的。所以我的问题是我有一个Object“数据”,它实际上是一个任意长度的元组,我必须对其进行迭代以创建单元格(只需使用data._1.toString, ...)。

自从没有 我不知道超类型Tuple1-22,我不能 不能只是做data.asInstanceOf[Tuple].productIterator foreach {…}

我能做些什么?


下面的答案告诉我,所有元组确实有一个特征Product——提供所需的foreach功能。

0 投票
3 回答
3823 浏览

java - 将 java.lang.Iterable 视为 Freemarker 中的 #list 表达式

我有一个 java.lang.Iterable (实际上是一个 com.google.gson.JsonArray 实例)。

我想使用 freemarker (2.3.16) 枚举列表中的项目。

我想避免仅仅为了有一个明确的项目集合而编写一个自定义 bean 和 Gson 反序列化器。使用 Gson(它已经为我将 JSON 字符串反序列化为 JsonObject)然后从该 JsonObject 创建我自己的对象 DAG 对我来说似乎很浪费。

不幸的是,我还没有找到让 Freemarker 将 java.lang.Iterable 视为列表的方法。我得到:

0 投票
7 回答
362 浏览

java - Java迭代问题

“目录”是一个存储“项目”对象集合的类。为此,我选择使用 List 集合。所以它看起来像:

主类必须能够使用 for 循环访问 Item 元素,该循环将 Catalog 对象视为集合本身。假设有一个名为“catalog:”的目录对象

问题:我收到不兼容的类型错误。

我的 Catalog 类实现了 Iterable 并有一个方法 iterator() 返回 List 的迭代器:

那么我做错了什么?

0 投票
22 回答
371335 浏览

java - 将 Iterable 转换为 Collection 的简单方法

在我的应用程序中,我使用 3rd 方库(确切地说是用于 MongoDB 的 Spring Data)。

这个库的方法返回Iterable<T>,而我的代码的其余部分期望Collection<T>

是否有任何实用方法可以让我快速将一种转换为另一种?我想避免foreach在我的代码中为这么简单的事情创建一堆循环。

0 投票
3 回答
161 浏览

python - Python字典到排序的元组,这可以做得更好吗?

我的输入有一个字典,具有以下特征:

  • 每个值都可以是整数、字符串或可迭代的(字符串除外)。
  • 如果元素是可迭代的,则该可迭代中的每个元素将只是一个字符串或整数。

前任:

我需要将输入转换为一个元组列表,其中每个元组都是一个键/值对。对于可迭代元素,每个元素都有一个键/值对,按值排序。例如,上面的输出应该是:

我目前使用以下生成器实现了这个:

我觉得这可以以更清洁的方式完成,有什么改进的建议吗?

0 投票
5 回答
12530 浏览

python - 在 Python 中将任何可迭代对象转换为数组

这只是一个骗局,但我只是没有找到这个问题的任何现有实例......

在 Python 中将任何可迭代对象转换为数组的最简单方法是什么(理想情况下,不导入任何内容)?

注意:理想情况下,如果输入是一个数组,那么它不应该复制它(但这不是必需的)。

0 投票
5 回答
5094 浏览

scala - Scala 类型是 Iterable 并且有长度?

编写 Scala 代码时,我经常遇到这样的情况:我有“处理器”函数,这些函数对元素集合进行迭代操作,并且还需要知道集合的长度。

另一方面,我有生成集合的“提供者”函数,因此已经知道长度。生成的集合可能是List[T]Array[T]Set[T]等,但即使在 的情况下List[T],我的生成器也知道大小(即使List类型不存储它)。

因此,我很自然地将“处理器”函数声明为采用似乎适合所有集合类型的最通用类型Iterable[T],作为参数。然而,他们在内部需要以 O(N) 为代价通过迭代集合遍历来找出大小,这是不可取的。

所以我天真的解决方案是创建一个新类型IterableWithSize[T],让提供者和处理器函数创建并采用这种类型。Seq[T]两者IndexedSeq[T]似乎都不符合要求。但这似乎是一个相对常见的用例,所以我怀疑有一种更惯用的方法来做到这一点。那会是什么?

0 投票
14 回答
161425 浏览

java - 迭代器和可迭代之间有什么区别以及如何使用它们?

我是Java新手,我真的对迭代器和可迭代感到困惑。任何人都可以向我解释并举一些例子吗?

0 投票
5 回答
5226 浏览

java - 为什么是可迭代的和迭代器在不同的包装?

Iterable<E>java.langIterator<E>java.util。这是否有充分的理由,或者这仅仅是糟糕设计的产物?

这似乎很奇怪,因为唯一有用的Iterable<E>是提供一个Iterator<E>.

编辑:一个潜在的原因是因为(当时)新引入的 for-each 循环。我想我的问题是,它们是等价的吗?

如果它们是,那么这仍然不能解释为什么这两个类在不同的包中,因为编译器无论如何都必须导入java.util才能使用该Iterator构造。