问题标签 [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.
java - 实现 Iterable 接口
我刚刚在一张旧试卷中找到了这个考试题,并正在为即将到来的考试做准备。我想不明白 :
下面描述了一个人为的部分类,它实现了 Iterable 接口。此类的唯一目的是提供一种方法来迭代属性things.
我们需要在课堂上填写两件事来完成它。这是课程
我猜它应该类似于:
不过,我不确定如何充实这个问题的答案,有人可以帮忙吗?
scala - 迭代任意长度的元组
我刚开始使用 Scala 并遇到了一个问题:
Scala 有 Types Tuple1
, Tuple2
, ..., Tuple22
. Scalaquery 在遍历查询时返回元组。
我现在有一个给定的类(ZK's ListitemRenderer
),它接受Object
s 并用行填充 gui 列表,每行包含一些单元格。但ListitemRenderer
不是通用的。所以我的问题是我有一个Object
“数据”,它实际上是一个任意长度的元组,我必须对其进行迭代以创建单元格(只需使用data._1.toString
, ...)。
自从没有 我不知道超类型Tuple1-22
,我不能 不能只是做data.asInstanceOf[Tuple].productIterator foreach {…}
我能做些什么?
下面的答案告诉我,所有元组确实有一个特征Product
——提供所需的foreach
功能。
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 视为列表的方法。我得到:
java - Java迭代问题
“目录”是一个存储“项目”对象集合的类。为此,我选择使用 List 集合。所以它看起来像:
主类必须能够使用 for 循环访问 Item 元素,该循环将 Catalog 对象视为集合本身。假设有一个名为“catalog:”的目录对象
问题:我收到不兼容的类型错误。
我的 Catalog 类实现了 Iterable 并有一个方法 iterator() 返回 List 的迭代器:
那么我做错了什么?
java - 将 Iterable 转换为 Collection 的简单方法
在我的应用程序中,我使用 3rd 方库(确切地说是用于 MongoDB 的 Spring Data)。
这个库的方法返回Iterable<T>
,而我的代码的其余部分期望Collection<T>
。
是否有任何实用方法可以让我快速将一种转换为另一种?我想避免foreach
在我的代码中为这么简单的事情创建一堆循环。
python - Python字典到排序的元组,这可以做得更好吗?
我的输入有一个字典,具有以下特征:
- 每个值都可以是整数、字符串或可迭代的(字符串除外)。
- 如果元素是可迭代的,则该可迭代中的每个元素将只是一个字符串或整数。
前任:
我需要将输入转换为一个元组列表,其中每个元组都是一个键/值对。对于可迭代元素,每个元素都有一个键/值对,按值排序。例如,上面的输出应该是:
我目前使用以下生成器实现了这个:
我觉得这可以以更清洁的方式完成,有什么改进的建议吗?
python - 在 Python 中将任何可迭代对象转换为数组
这只是一个骗局,但我只是没有找到这个问题的任何现有实例......
在 Python 中将任何可迭代对象转换为数组的最简单方法是什么(理想情况下,不导入任何内容)?
注意:理想情况下,如果输入是一个数组,那么它不应该复制它(但这不是必需的)。
scala - Scala 类型是 Iterable 并且有长度?
编写 Scala 代码时,我经常遇到这样的情况:我有“处理器”函数,这些函数对元素集合进行迭代操作,并且还需要知道集合的长度。
另一方面,我有生成集合的“提供者”函数,因此已经知道长度。生成的集合可能是List[T]
、Array[T]
或Set[T]
等,但即使在 的情况下List[T]
,我的生成器也知道大小(即使List
类型不存储它)。
因此,我很自然地将“处理器”函数声明为采用似乎适合所有集合类型的最通用类型Iterable[T]
,作为参数。然而,他们在内部需要以 O(N) 为代价通过迭代集合遍历来找出大小,这是不可取的。
所以我天真的解决方案是创建一个新类型IterableWithSize[T]
,让提供者和处理器函数创建并采用这种类型。Seq[T]
两者IndexedSeq[T]
似乎都不符合要求。但这似乎是一个相对常见的用例,所以我怀疑有一种更惯用的方法来做到这一点。那会是什么?
java - 迭代器和可迭代之间有什么区别以及如何使用它们?
我是Java新手,我真的对迭代器和可迭代感到困惑。任何人都可以向我解释并举一些例子吗?
java - 为什么是可迭代的和迭代器在不同的包装?
Iterable<E>
在java.lang
而Iterator<E>
在java.util
。这是否有充分的理由,或者这仅仅是糟糕设计的产物?
这似乎很奇怪,因为唯一有用的Iterable<E>
是提供一个Iterator<E>
.
编辑:一个潜在的原因是因为(当时)新引入的 for-each 循环。我想我的问题是,它们是等价的吗?
如果它们是,那么这仍然不能解释为什么这两个类在不同的包中,因为编译器无论如何都必须导入java.util
才能使用该Iterator
构造。