0

Java 8 Streamを使用しているときに、Streamに必要な特定のメソッド (たとえば、 takeWhile()dropWhile()などskipLast()) がないことに気付くことがあります。Java 8 Streamアーキテクチャ全体を書き直さずに、追加のメソッドを持つ独自のストリーム クラスを作成するにはどうすればよいですか?

私はStreamExライブラリを認識しており、 takeWhile()dropWhile( ) があることを知っています。これを書いている時点では、ありませんskipLast()。このメソッドの問題を提出しました。

受け入れられる解決策は、Java 8 StreamまたはStreamExを拡張する方法を示すことです。

4

1 に答える 1

4

バージョン 0.5.4 以降、 StreamExライブラリにはchain()メソッドがあります。これにより、快適にプラグインするヘルパー メソッドを作成できます。

public static <T> UnaryOperator<StreamEx<T>> skipLast(int n)
{
   return(stream -> skipLast(stream, n));
}

private static StreamEx<T> skipLast(Stream<T> input, int n)
{
   // implement the real logic of skipLast
}

上記で、今書くことができます...

StreamEx.
   of(input).
   chain(skipLast(10)).
   forEach(System.out::println);
于 2016-01-28T04:02:48.417 に答える