Rumah  >  Artikel  >  Java  >  Cara menggunakan fungsi IntStream dalam Java untuk operasi aliran berangka

Cara menggunakan fungsi IntStream dalam Java untuk operasi aliran berangka

WBOY
WBOYasal
2023-06-26 20:15:082384semak imbas

Fungsi IntStream dalam Java ialah antara muka berfungsi yang baru diperkenalkan dalam Java 8. Ia boleh melakukan operasi penstriman pada data jenis integer, termasuk penapisan, pemetaan, pengumpulan dan operasi lain. Artikel ini akan memperkenalkan cara menggunakan fungsi IntStream untuk operasi strim berangka.

1. Pengenalan kepada fungsi IntStream

IntStream ialah antara muka berfungsi dalam Java, yang mewakili aliran elemen yang jenis asasnya ialah int. Ia mewarisi antara muka Strim dan menambah kaedah untuk int jenis asas.

Kaedah dalam IntStream terbahagi terutamanya kepada empat kategori berikut:

  1. Buat strim: julat, julatDitutup, daripada, lelaran, jana dan kaedah lain.
  2. Strim penukaran: peta, Peta rata, penapis, berbeza, disusun dan kaedah lain.
  3. Strim penamatan: forEach, toArray, sum, average, reduce dan kaedah lain.
  4. Aliran operasi: min, maks, kiraan, anyMatch, allMatch, noneMatch dan kaedah lain. . gunakan kaedah IntStream.of untuk mencipta strim An integer elemen yang ditentukan:
  5. IntStream intStream = IntStream.range(1, 10);
Anda juga boleh mencipta strim berulang menggunakan kaedah IntStream.iterate:

IntStream intStream = IntStream.of(1, 3, 5, 7, 9);

Selepas mencipta strim, kami boleh menggunakan operasi perantaraan untuk penukaran. Sebagai contoh, kita boleh menggunakan kaedah peta untuk mendarab setiap elemen:

IntStream intStream = IntStream.iterate(1, n -> n + 2).limit(5);
intStream.forEach(System.out::println);//1 3 5 7 9

Kita juga boleh menggunakan kaedah penapis untuk menapis elemen yang memenuhi syarat:

IntStream intStream = IntStream.range(1, 10);
intStream.map(n -> n * 2).forEach(System.out::println);//2 4 6 8 10 12 14 16 18

Selepas menyelesaikan operasi perantaraan, kita boleh menggunakan operasi penamatan untuk menyelesaikan statistik, pengumpulan dan operasi lain. Sebagai contoh, kita boleh menggunakan kaedah jumlah untuk menjumlahkan strim:

IntStream intStream = IntStream.range(1, 10);
intStream.filter(n -> n % 2 == 0).forEach(System.out::println);//2 4 6 8

Kita juga boleh menggunakan kaedah toArray untuk menukar elemen dalam strim kepada tatasusunan:

IntStream intStream = IntStream.range(1, 10);
int sum = intStream.filter(n -> n % 2 == 0).sum();
System.out.println(sum);//20

3. Penggunaan lanjutan fungsi IntStream

IntStream mempunyai penggunaan yang lebih maju, seperti flatMap, reduce, collect dan kaedah lain. Penggunaan kaedah ini diperkenalkan di bawah.

kaedah flatMap

Kaedah flatMap boleh memetakan setiap elemen aliran kepada aliran, dan kemudian menggabungkan aliran kecil ini menjadi satu aliran besar. Sebagai contoh, kita boleh menggunakan kaedah flatMap untuk menukar setiap nombor kepada rentetan yang sepadan, dan kemudian menggabungkan rentetan ini menjadi strim:

IntStream intStream = IntStream.range(1, 10);
int[] arr = intStream.filter(n -> n % 2 == 0).toArray();
System.out.println(Arrays.toString(arr));//[2, 4, 6, 8]

    reduce method
reduce kaedah boleh mengurangkan elemen dalam strim menjadi nilai, Untuk contoh, penjumlahan, produk, dll. Kita boleh menggunakan kaedah pengurangan untuk menjumlahkan aliran jenis int:

IntStream intStream = IntStream.range(1, 5);
Stream<String> stream = intStream.flatMap(n -> Stream.of(String.valueOf(n)));
stream.forEach(System.out::println);//"1" "2" "3" "4"

    kaedah kumpulkan
Kaedah pengumpulan boleh mengumpulkan elemen dalam aliran ke dalam bekas, seperti Senarai, Set, Peta, dsb. Kita boleh menggunakan kaedah pengumpulan untuk mengumpul aliran jenis int ke dalam Senarai:

IntStream intStream = IntStream.range(1, 5);
int sum = intStream.reduce(0, (a, b) -> a + b);
System.out.println(sum);//10

IV Ringkasan
  1. Artikel ini memperkenalkan penggunaan asas dan lanjutan bagi fungsi IntStream dalam Java. Fungsi IntStream boleh melaksanakan operasi penstriman pada elemen jenis int dan menyediakan banyak operasi perantaraan dan operasi penamatan, membolehkan kami menyelesaikan pelbagai pengiraan berangka dan tugas pengumpulan data dengan mudah. Saya berharap melalui pengenalan artikel ini, pembaca dapat menguasai penggunaan fungsi IntStream dan memudahkan kerja pembangunan Java pada masa hadapan.

Atas ialah kandungan terperinci Cara menggunakan fungsi IntStream dalam Java untuk operasi aliran berangka. 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