Rumah > Java > javaTutorial > teks badan

Cara menggunakan fungsi Strim dalam Java untuk operasi strim

PHPz
Lepaskan: 2023-06-26 14:10:11
asal
1401 orang telah melayarinya

Fungsi Stream dalam Java ialah ciri baharu yang diperkenalkan dalam Java 8. Ia menyediakan cara baharu sepenuhnya untuk mengendalikan set data seperti koleksi dan tatasusunan. Stream menyediakan kaedah pengaturcaraan berfungsi untuk melaksanakan operasi strim, dan juga sangat memudahkan penulisan kod. Dalam artikel ini, kami akan meneroka cara melaksanakan operasi penstriman menggunakan fungsi Strim dalam Java.

1. Apakah fungsi Stream

Fungsi Stream ialah ciri baharu yang diperkenalkan di Java 8. Ia memberikan kami cara pengaturcaraan berfungsi untuk melaksanakan operasi strim untuk memudahkan kod kami. Fungsi Stream boleh digunakan untuk mengendalikan elemen dalam struktur data seperti koleksi dan tatasusunan untuk mencapai fungsi yang kami perlukan.

Fungsi Stream mempunyai dua mod operasi, iaitu operasi perantaraan dan operasi penamatan. Operasi perantaraan boleh dilakukan beberapa kali, manakala operasi penamatan menghentikan pemprosesan strim dan mengembalikan hasil atau kesan sampingan. Pada masa yang sama, Stream juga mempunyai keupayaan pemprosesan selari.

2. Gunakan fungsi Strim untuk operasi strim

  1. Buat Strim

Kita boleh mendapatkan objek strim melalui kaedah strim() koleksi atau kaedah Strim.of() tatasusunan. Contohnya:

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream1 = list.stream(); // 通过list对象获取stream对象
Stream<Integer> stream2 = Stream.of(1, 2, 3); // 通过Stream.of()方法获取stream对象
Salin selepas log masuk
  1. Operasi perantaraan

Stream menyediakan banyak kaedah operasi perantaraan, yang boleh melakukan operasi penapisan, pemetaan, penghirisan dan lain-lain. Mari kita lihat kaedah operasi ini satu persatu:

(1) kaedah penapis(): elemen penapis

List<Integer> list = Arrays.asList(1, 2, 3, 4);
Stream<Integer> stream = list.stream();
stream.filter(i -> i%2 == 0).forEach(System.out::println); // 输出2和4
Salin selepas log masuk

(2) kaedah peta(): elemen peta

List<String> list = Arrays.asList("Java", "Python", "Ruby");
Stream<String> stream = list.stream();
stream.map(String::toLowerCase).forEach(System.out::println); // 输出java, python, ruby
Salin selepas log masuk

(3) kaedah flatMap(): ratakan flow

List<List<Integer>> list = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4), Arrays.asList(5, 6));
Stream<List<Integer>> stream = list.stream();
stream.flatMap(Collection::stream).forEach(System.out::println); // 输出1, 2, 3, 4, 5, 6
Salin selepas log masuk

(4) kaedah distinct(): alih keluar pendua

List<Integer> list = Arrays.asList(1, 2, 3, 1, 2, 3);
Stream<Integer> stream = list.stream();
stream.distinct().forEach(System.out::println); // 输出1, 2, 3
Salin selepas log masuk

(5) kaedah sorted(): kaedah sort

List<Integer> list = Arrays.asList(3, 2, 1);
Stream<Integer> stream = list.stream();
stream.sorted().forEach(System.out::println); // 输出1, 2, 3
Salin selepas log masuk

(6) limit() kaedah: hadkan bilangan elemen

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.limit(3).forEach(System.out::println); // 输出1, 2, 3
Salin selepas log masuk

(7) langkau( ) kaedah: Langkau elemen

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.stream();
stream.skip(2).forEach(System.out::println); // 输出3, 4, 5
Salin selepas log masuk

(8) peek() kaedah: Tambahkan elemen

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream1 = list.stream();
Stream<Integer> stream2 = stream1.peek(System.out::println);
stream2.count(); // 输出1, 2, 3
Salin selepas log masuk
  1. Operasi penamatan

Stream menyediakan banyak kaedah operasi penamatan, yang boleh mengembalikan hasil pemprosesan strim. Mari kita lihat kaedah operasi ini satu demi satu:

(1) kaedah forEach(): lelaran elemen dalam strim

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
stream.forEach(System.out::println); // 输出1, 2, 3
Salin selepas log masuk

(2) count() kaedah: kira bilangan elemen

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
stream.count(); // 输出3
Salin selepas log masuk

(3) kaedah toArray() : Tukar elemen dalam strim kepada tatasusunan

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
Object[] array = stream.toArray();
System.out.println(Arrays.toString(array)); // 输出[1, 2, 3]
Salin selepas log masuk

(4) kaedah reduce(): Kurangkan elemen dalam strim

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
int result = stream.reduce(0, (x, y) -> x + y);
System.out.println(result); // 输出6
Salin selepas log masuk

(5) collect() kaedah: Kumpulkan elemen dalam strim

List<Integer> list = Arrays.asList(1, 2, 3);
Stream<Integer> stream = list.stream();
List<Integer> newList = stream.collect(Collectors.toList());
System.out.println(newList); // 输出[1, 2, 3]
Salin selepas log masuk
  1. Operasi aliran selari

Fungsi Strim juga menyediakan fungsi operasi aliran selari, dan aliran boleh ditukar kepada aliran selari melalui kaedah selari(). Strim selari boleh menggunakan sepenuhnya kuasa pemprosesan CPU berbilang teras dan meningkatkan kecekapan menjalankan program. Contohnya:

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Stream<Integer> stream = list.parallelStream();
stream.forEach(System.out::println); // 输出1, 2, 3, 4, 5
Salin selepas log masuk

3. Ringkasan

Fungsi Stream ialah ciri baharu dalam Java 8, yang menyediakan cara baharu untuk mengendalikan set data seperti koleksi dan tatasusunan. Melalui operasi perantaraan dan operasi penamatan fungsi Strim, kami boleh menapis, memetakan, menyahduplikasi, mengisih, mengehadkan bilangan elemen, melangkau elemen, menambah elemen dan operasi lain dengan mudah. Pada masa yang sama, melalui operasi aliran selari, kami boleh menggunakan sepenuhnya kuasa pemprosesan CPU berbilang teras dan meningkatkan kecekapan menjalankan program. Pengenalan di atas hanyalah sebahagian daripada fungsi fungsi Strim Logik perniagaan kompleks yang perlu dilaksanakan dengan menggunakan pelbagai kaedah operasi fungsi Strim.

Atas ialah kandungan terperinci Cara menggunakan fungsi Strim dalam Java untuk operasi strim. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan