Questions tagged «iterable»

一个可迭代对象是一个对象,例如字符串或集合,可以对其进行迭代,一次生成一个成员。

30
了解切片符号
我需要一个关于Python切片符号的很好的解释(引用是一个加号)。 对我而言,此表示法需要一些注意。 它看起来非常强大,但是我还没有完全了解它。
3279 python  list  slice  iterable 





9
为什么Stream <T>不实现Iterable <T>?
在Java 8中,我们有类Stream &lt;T&gt;,它奇怪地有一个方法 Iterator&lt;T&gt; iterator() 因此,您可能希望它实现接口Iterable &lt;T&gt;,而该接口正是需要此方法,但事实并非如此。 当我想使用foreach循环遍历Stream时,我必须做类似的事情 public static Iterable&lt;T&gt; getIterable(Stream&lt;T&gt; s) { return new Iterable&lt;T&gt; { @Override public Iterator&lt;T&gt; iterator() { return s.iterator(); } }; } for (T element : getIterable(s)) { ... } 我在这里想念什么吗?

3
为什么Iterable <T>不提供stream()和parallelStream()方法?
我想知道为什么Iterable接口不提供stream()和parallelStream()方法。考虑以下类别: public class Hand implements Iterable&lt;Card&gt; { private final List&lt;Card&gt; list = new ArrayList&lt;&gt;(); private final int capacity; //... @Override public Iterator&lt;Card&gt; iterator() { return list.iterator(); } } 它是一手牌的一种实现,因为您在玩交易纸牌游戏时可以手拿牌。 本质上,它包装List&lt;Card&gt;,以确保最大容量并提供其他有用的功能。最好将其直接实现为List&lt;Card&gt;。 现在,为了方便起见,我认为最好实现Iterable&lt;Card&gt;,这样,如果要遍历它,可以使用增强的for循环。(我的Hand课程也提供了一种get(int index)方法,因此Iterable&lt;Card&gt;我认为该方法是合理的。) 该Iterable界面提供了以下内容(省略了javadoc): public interface Iterable&lt;T&gt; { Iterator&lt;T&gt; iterator(); default void forEach(Consumer&lt;? super T&gt; action) { Objects.requireNonNull(action); for (T t …


16
为什么Java的Iterator不可迭代?
为什么Iterator接口不扩展Iterable? 该iterator()方法可以简单地返回this。 是故意的还是对Java设计人员的监督? 能够将for-each循环与这样的迭代器一起使用会很方便: for(Object o : someContainer.listSomeObjects()) { .... } 其中listSomeObjects()返回迭代器。
178 java  iterator  iterable 


10
将Java数组转换为可迭代
我有一个原始数组,例如int,int [] foo。它可能是小型的,也可能不是。 int foo[] = {1,2,3,4,5,6,7,8,9,0}; 从中创建一个的最佳方法是Iterable&lt;Integer&gt;什么? Iterable&lt;Integer&gt; fooBar = convert(foo); 笔记: 请不要回答使用循环(除非您可以对编译器如何对它们做一些聪明的事情给出很好的解释?) 另请注意 int a[] = {1,2,3}; List&lt;Integer&gt; l = Arrays.asList(a); 甚至不会编译 Type mismatch: cannot convert from List&lt;int[]&gt; to List&lt;Integer&gt; 还要检查 为什么数组不能分配给Iterable? 在回答之前。 另外,如果您使用某些库(例如Guava),请解释为什么这是最好的。(因为来自Google的答案不是完整的:P) 最后,由于似乎有作业,因此请避免发布作业代码。
150 java  arrays  iterable 

6
将ES6可迭代转换为数组
假设您有一个类似数组的Javascript ES6 Iterable,您事先知道它的长度是有限的,那么将其转换为Javascript数组的最佳方法是什么? 这样做的原因是,许多下划线和lodash之类的js库仅支持Arrays,因此,如果您希望在Iterable上使用其任何功能,则必须首先将其转换为Array。 在python中,您可以只使用list()函数。ES6中是否有等效功能?

10
获取Java中Iterable的大小
我需要弄清楚IterableJava中元素的数量。我知道我可以这样做: Iterable values = ... it = values.iterator(); while (it.hasNext()) { it.next(); sum++; } 我也可以这样做,因为我不再需要Iterable中的对象: it = values.iterator(); while (it.hasNext()) { it.remove(); sum++; } 小型基准测试没有表现出太大的性能差异,对此问题有任何意见或其他想法吗?
88 java  iterable 



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.