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:
- Buat strim: julat, julatDitutup, daripada, lelaran, jana dan kaedah lain.
- Strim penukaran: peta, Peta rata, penapis, berbeza, disusun dan kaedah lain.
- Strim penamatan: forEach, toArray, sum, average, reduce dan kaedah lain.
- Aliran operasi: min, maks, kiraan, anyMatch, allMatch, noneMatch dan kaedah lain. . gunakan kaedah IntStream.of untuk mencipta strim An integer elemen yang ditentukan:
IntStream intStream = IntStream.range(1, 10);
Salin selepas log masuk
Anda juga boleh mencipta strim berulang menggunakan kaedah IntStream.iterate:
IntStream intStream = IntStream.of(1, 3, 5, 7, 9);
Salin selepas log masuk
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
Salin selepas log masuk
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
Salin selepas log masuk
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
Salin selepas log masuk
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
Salin selepas log masuk
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]
Salin selepas log masuk
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"
Salin selepas log masuk
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
Salin selepas log masuk
IV Ringkasan
- 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!