ホームページ  >  記事  >  Java  >  Java で逆向きの IntStream を生成するにはどうすればよいですか?

Java で逆向きの IntStream を生成するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 10:05:36870ブラウズ

How to Generate a Reversed IntStream in Java?

Java ストリームを反転して減少する IntStream を生成する方法

ストリームの反転は、Java 8 ストリームを扱う場合の一般的な操作です。ここでは、任意のタイプのストリームを反転するための 2 つのアプローチを検討し、特に減少する IntStream を生成するという課題に対処します。

一般的なアプローチ: 任意のタイプのストリームを反転する

要素のタイプに関係なくストリームを反転するには、次の 2 つの手法を使用できます:

  1. 要素を配列に格納する: この方法では、ストリームを配列に変換し、要素を逆から読みます。ただし、ストリーム要素のランタイム タイプが不明であるため、チェックされていないキャストが必要です。
  2. コレクターの使用: このアプローチでは、ストリーム要素を逆リストに蓄積しますが、ストリーム要素を頻繁に挿入する必要があります。 ArrayList オブジェクトの前に配置され、コピーのオーバーヘッドが発生します。

特定のアプローチ: 減少する IntStream を生成する

減少する IntStream を生成する特定の問題は、次の方法で対処できます。次のカスタム メソッド:

<code class="java">static IntStream revRange(int from, int to) {
    return IntStream.range(from, to)
                    .map(i -> to - i + from - 1);
}</code>

この手法により、ボックス化と並べ替え操作が回避され、より効率的なコードが得られます。

追加の考慮事項

前のこの回答のバージョンでは、逆の ArrayList を使用することをお勧めします。ただし、ArrayList の前に挿入するのは非効率であるため、代わりに ArrayDeque を使用するように更新され、効率的な前挿入をサポートします。

このアプローチの出力は List ではなく Deque ですが、簡単に反復したり、逆の順序でストリーミングしたりできます。

以上がJava で逆向きの IntStream を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。