3
Iterable <T>がstream()およびparallelStream()メソッドを提供しないのはなぜですか?
Iterableインターフェイスがstream()and parallelStream()メソッドを提供しないのはなぜですか。次のクラスについて考えてみます。 public class Hand implements Iterable<Card> { private final List<Card> list = new ArrayList<>(); private final int capacity; //... @Override public Iterator<Card> iterator() { return list.iterator(); } } トレーディングカードゲームのプレイ中にカードを手にできるので、これはハンドの実装です。 基本的にはをラップしList<Card>、最大容量を確保し、その他の便利な機能をいくつか提供します。として直接実装するよりも優れていList<Card>ます。 さて、便宜上、を実装した方がいいと思ったのでIterable<Card>、ループを拡張したい場合は拡張forループを使用できます。(私のHandクラスもget(int index)メソッドを提供しているため、Iterable<Card>私の意見では正当化されます。) Iterableインターフェースは、(Javadocを除外)以下を提供します: public interface Iterable<T> { Iterator<T> iterator(); default void forEach(Consumer<? super T> action) { Objects.requireNonNull(action); for (T …