Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menjana IntStream Terbalik dalam Java?

Bagaimana untuk Menjana IntStream Terbalik dalam Java?

Barbara Streisand
Barbara Streisandasal
2024-10-30 10:05:36870semak imbas

How to Generate a Reversed IntStream in Java?

Cara Membalikkan Strim Java untuk Menjana Strim Int yang Berkurangan

Menterbalikkan strim ialah operasi biasa apabila berurusan dengan strim Java 8. Di sini, kami meneroka dua pendekatan untuk membalikkan aliran apa-apa jenis dan secara khusus menangani cabaran menjana IntStream yang semakin berkurangan.

Pendekatan Umum: Membalikkan Strim Mana-mana Jenis

Untuk membalikkan aliran tanpa mengira jenis elemen, dua teknik boleh digunakan:

  1. Menyimpan Elemen dalam Tatasusunan: Kaedah ini melibatkan penukaran strim kepada tatasusunan, kemudian membaca elemen ke belakang. Walau bagaimanapun, ia memerlukan cast yang tidak ditanda kerana jenis masa jalan yang tidak diketahui bagi elemen strim.
  2. Menggunakan Pengumpul: Pendekatan ini mengumpulkan elemen strim ke dalam senarai terbalik, tetapi melibatkan sisipan yang kerap di hadapan objek ArrayList, mengakibatkan penyalinan di atas kepala.

Pendekatan Khusus: Menjana IntStream yang Berkurangan

Isu khusus menjana IntStream yang berkurangan boleh ditangani dengan kaedah tersuai berikut:

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

Teknik ini mengelakkan operasi tinju dan pengisihan, menghasilkan kod yang lebih cekap.

Pertimbangan Tambahan

Sebelumnya versi jawapan ini disyorkan menggunakan ArrayList terbalik. Walau bagaimanapun, disebabkan oleh ketidakcekapan memasukkan di hadapan ArrayList, ia telah dikemas kini untuk menggunakan ArrayDeque sebaliknya, yang menyokong sisipan hadapan yang cekap.

Output pendekatan ini ialah Deque dan bukannya Senarai, tetapi ia boleh diulang atau distrim dengan mudah dalam susunan terbalik sekarang.

Atas ialah kandungan terperinci Bagaimana untuk Menjana IntStream Terbalik dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn