Semua Yang Anda Perlu Tahu Mengenai Stream Di Java



Artikel ini akan memperkenalkan Anda kepada Streaming Java paket yang baru diperkenalkan di Java dan anda akan penjelasan terperinci mengenai apa yang dapat dilakukannya.

Pakej tambahan baru di Java 8, dikenali sebagai java.util.stream telah ditambah untuk pengguna untuk pengalaman pengaturcaraan yang cekap. Aliran dapat didefinisikan sebagai urutan objek, menyokong pelbagai kaedah. Dalam artikel ini kita akan menjelajah Stream in

Petunjuk berikut akan dibahas dalam Artikel ini,





Sebelum kita memulakan artikel ini di Stream In Java, mari kita lihat beberapa ciri penting,

Stream Di Java: Ciri

  • Aliran bukan struktur data dan tidak menyimpan unsur. Koleksi, Susunan atau Saluran I / O adalah dari mana ia memerlukan input.
  • Sumber aliran tetap tidak dapat diubah setelah operasi dilakukan di atasnya. Sebagai contoh, menyaring aliran hanya menghasilkan aliran baru tanpa elemen yang ditapis, dan bukannya mengubah aliran asal.
  • Operasi agregasi seperti penapis, pengurangan, padanan, cari, dan lain-lain disokong oleh aliran.
  • Kemalasan dapat dianggap sebagai ciri aliran, kerana menilai kod hanya bila diperlukan.
  • Kunjungan unsur-unsur yang terdapat dalam aliran hanya dapat dilakukan sekali sepanjang hayat aliran. Aliran baru mesti dibuat untuk melihat semula elemen yang sama yang terdapat dalam sumber.

Teruskan dengan artikel ini di Stream di Java



Menjana Aliran

Aliran boleh dihasilkan dengan kaedah berikut:

  • aliran () - Aliran berurutan dikembalikan.Koleksidianggap sebagai sumbernya.
  • parallelStream () - Aliran selari dikembalikan. Koleksi dianggap sebagai sumbernya.
Rentetan senarai = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') List filtered = strings.stream (). Filter (string ->! String. isEmpty ()). kumpulkan (Collectors.toList ())

Teruskan dengan artikel ini di Stream di Java

gandingan ketat vs gandingan longgar

Operasi di Aliran:

Operasi Pertengahan:

peta



Unsur-unsur yang terdapat dalam koleksi dapat dipetakan ke objek lain sesuai dengan predikat yang dilalui sebagai argumen. Contoh berikut digunakan untuk menampilkan kotak nombor unik dengan menggunakan kaedah peta.

List num = Arrays.asList (5,4,4,2,3,3) List squares = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ()).

tapis

Elemen boleh dikeluarkan berdasarkan kriteria dengan menggunakan kaedah ini.

Senarai nama = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

disusun

Aliran boleh disusun dengan menggunakan kaedah ini.

Senarai nama = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Sorted (). Collect (Collectors.toList ())

Strim Di Java: Operasi Terminal:

mengumpul

Hasil pemprosesan pada elemen aliran dapat digabungkan dengan menggunakan operasi pengumpulan.

List num = Arrays.asList (4,3,2,5,6) Tetapkan res = num.stream (). Map (y-> y * y) .collect (Collectors.toSet ())

untuk setiap

Kaedah ini digunakan untuk melakukan iterasi melalui setiap elemen yang ada dalam aliran.

List num = Arrays.asList (4,3,2,5) num.stream (). Map (x-> x * x) .forEach (y-> System.out.println (y))

kurangkan

Unsur aliran boleh dikurangkan menjadi satu nilai dengan menggunakan kaedah ini.

Senaraikan num = Arrays.asList (4,3,2,5) int genap = num.stream (). Filter (x-> x% 2 == 0). Mengurangkan (0, (res, i) -> res + i)

Res pemboleh ubah diberi nilai 0 pada mulanya, dan saya ditambahkan padanya.

Teruskan dengan artikel ini di Stream di Java

Penapisan

Kod boleh disaring dengan menggunakan kaedah aliran. Dalam contoh berikut, harga instrumen disaring.

import java.util. * import java.util.stream.Collectors class Instrument {int num String name float price public Instrument (int num, String name, float harga) {this.num = num this.name = name this.price = price}} kelas awam Uji {public static void main (String [] args) {List documentsList = new ArrayList () // Menambah Produk instrumenList.add (instrumen baru (1, 'Guitar', 15000f)) instrumenList.add (baru Instrumen (2, 'Piano', 18000f)) instrumenList.add (Instrumen baru (3, 'Flute', 15000f)) instrumenList.add (Instrumen baru (4, 'Drum', 48000f)) instrumenList.add (Instrumen baru ( 5, 'Ukulele', 32000f)) Senaraikan InstrumentPriceList2 = instrumenList.stream (). Filter (p -> p.price> 30000) // filtering data. Peta (p-> p.price) // mengambil harga .collect ( Collectors.toList ()) // mengumpulkan sebagai senarai System.out.println (InstrumentPriceList2)}}
 Pengeluaran: 

[48000.0, 32000.0]

Teruskan dengan artikel ini di Stream di Java

Pengulangan:

Pengulangan dapat dilakukan dengan menggunakan aliran di java.

import java.util.stream. * ujian kelas awam {public static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). had (6) .forEach (System.out :: println)}}

Pengeluaran:

cara menggunakan pengimbas di java

4

8

12

16

dua puluh

24

Mari kita lihat contoh lain, untuk memahami konsep Stream in java dengan lebih berkesan.

Contoh:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// membuat senarai bilangan bulat List num = Arrays.asList (6,7,8,9 ) // menggunakan kaedah peta Senaraikan kotak = num.stream (). peta (y -> y * y). kumpulkan (Collectors.toList ()) System.out.println (kotak) // membuat senarai hari String List = Arrays.asList ('Friday', 'Saturday', 'Sunday') // kaedah filter List res = days .stream (). filter (s-> s.startsWith ('S')). kumpulkan (Collectors.toList ()) System.out.println (res) // kaedah disusun Paparan senarai = hari.stream (). disusun (). collect (Collectors.toList ()) System.out.println (paparan) / / membuat senarai bilangan bulat Nombor senarai = Arrays.asList (6,9,5,7,1) // kaedah kumpulkan mengembalikan satu set Set sqSet = number.stream (). peta (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forSetiap kaedah num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / mengurangkan kaedah int genap = num.stream (). filter (x-> x% 2 == 0). mengurangkan (0, (hasil, i) -> hasil + i) System.out.println (genap)}}

Pengeluaran:

[36, 49, 64, 81]

[Sabtu Ahad]

[Jumaat, Sabtu, Ahad]

[81, 49, 1, 36, 25]

36

49

64

81

cara mengkonfigurasi gerhana untuk java

14

Aliran membolehkan pengguna melakukan operasi pada elemen secara berkesan.

Oleh itu, kita telah mengakhiri artikel ini mengenai 'Stream in Java'. Sekiranya anda ingin mempelajari lebih lanjut, lihat Java Training oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.