首頁  >  文章  >  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 流時的常見操作。在這裡,我們探索兩種方法來反轉任何類型的流,並專門解決產生遞減的 IntStream 的挑戰。

一般方法:反轉任何類型的流

要反轉流,無論元素類型如何,可以採用兩種技術:

  1. 將元素儲存在陣列中:此方法涉及將流轉換為數組,然後向後讀取元素。然而,由於流元素的運行時類型未知,它需要未經檢查的強制轉換。
  2. 使用收集器:這種方法將流元素累積到反向列表中,但涉及頻繁插入

具體方法:產生遞減的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 來代替,支援高效的前面插入。

這種方式的輸出是 Deque 而不是 List,但是它可以輕鬆地以現在相反的順序進行迭代或串流。

以上是如何在Java中產生反轉的IntStream?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn