タグ付けされた質問 「iterable」

反復可能オブジェクトとは、文字列やコレクションなどのオブジェクトを繰り返し処理して、一度に1つずつメンバーを解放することのできるオブジェクトです。

30
スライス表記について
Pythonのスライス表記について、良い説明が必要です(参照はプラスです)。 私にとって、この表記は少しピックアップする必要があります。 非常にパワフルに見えますが、頭がよくわかりません。
3284 python  list  slice  iterable 



9
Java 8 JDKを使用してIterableをStreamに変換する
私はを返すインターフェイスを持っていますjava.lang.Iterable<T>。 Java 8 Stream APIを使用してその結果を操作したいと思います。 ただし、Iterableは「ストリーミング」できません。 リストに変換せずにIterableをストリームとして使用する方法はありますか?


9
Stream <T>がIterable <T>を実装しないのはなぜですか?
Java 8では、クラスStream &lt;T&gt;があり、奇妙なことにメソッドがあります Iterator&lt;T&gt; iterator() そのため、このメソッドを必要とするIterable &lt;T&gt;インターフェースの実装が期待されますが、そうではありません。 foreachループを使用してストリームを反復処理する場合は、次のようにする必要があります 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()and 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 …


16
JavaのIteratorがIterableではないのはなぜですか?
Iteratorインターフェースが拡張されないのはなぜIterableですか? iterator()この方法は、単純に返すことができますthis。 それは意図的なものですか、それともJavaのデザイナーの見落としでしょうか? 次のようなイテレータでfor-eachループを使用できると便利です。 for(Object o : someContainer.listSomeObjects()) { .... } where 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
ES6Iterableを配列に変換する
配列のようなJavascriptES6 Iterableがあり、長さが有限であることが事前にわかっているとしましょう。これをJavascript配列に変換する最良の方法は何ですか。 その理由は、アンダースコアやlodashなどの多くのjsライブラリは配列のみをサポートしているため、Iterableでそれらの関数のいずれかを使用する場合は、最初に配列に変換する必要があります。 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 

3
KotlinのIterableとSequenceはまったく同じように見えます。なぜ2つのタイプが必要なのですか?
これらのインターフェースは両方とも1つのメソッドのみを定義します public operator fun iterator(): Iterator&lt;T&gt; ドキュメントによるSequenceと、怠惰になることを意図しています。しかし、Iterable怠惰ではありませんCollectionか(に裏打ちされていない限り)?


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.