Semua yang Perlu Anda Ketahui Tentang Stream Di Java



Artikel ini akan memperkenalkan Anda pada Streaming di Java, sebuah paket yang baru-baru ini diperkenalkan di Java dan penjelasan mendetail tentang apa yang dapat dilakukannya.

Paket tambahan baru di Java 8, yang dikenal sebagai java.util.stream telah ditambahkan untuk pengguna untuk pengalaman pemrograman yang efisien. Aliran dapat didefinisikan sebagai urutan objek, mendukung banyak metode. Pada artikel ini kita akan menjelajahi Stream in

Petunjuk berikut akan dicakup dalam Artikel ini,





Sebelum kita mulai dengan artikel ini di Stream In Java, mari kita lihat beberapa fitur penting,

string pool konstan di java

Streaming Di Java: Fitur

  • Aliran bukanlah struktur data dan tidak menyimpan elemen. Collections, Arays atau I / O Channels adalah tempat input berasal.
  • Sumber aliran tetap tidak diubah setelah operasi dilakukan padanya. Misalnya, memfilter aliran hanya menghasilkan aliran baru tanpa elemen yang difilter, alih-alih mengubah aliran asli.
  • Operasi agregasi seperti filter, kurangi, cocokkan, temukan, dll didukung oleh aliran.
  • Kemalasan dapat dianggap sebagai fitur aliran, karena ia mengevaluasi kode hanya jika diperlukan.
  • Visitasi elemen yang ada di aliran hanya dapat dilakukan sekali selama aliran berlangsung. Aliran baru harus dibuat untuk mengunjungi kembali elemen yang sama yang ada di sumber.

Lanjutkan dengan artikel ini di Stream di Java



Menghasilkan Arus

Aliran dapat dibuat dengan metode berikut:

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

Lanjutkan dengan artikel ini di Stream di Java

Operasi di Stream:

Operasi Menengah:

peta



Elemen yang ada dalam koleksi dapat dipetakan ke objek lain sesuai dengan predikat yang diteruskan sebagai argumen. Contoh berikut digunakan untuk menampilkan kotak unik dari angka-angka dengan menggunakan metode peta.

Daftar num = Array.asList (5,4,4,2,3,3) Kotak daftar = num.stream (). Peta (y -> y * y) .distinct (). Kumpulkan (Collectors.toList ())

Saring

Elemen dapat dihapus berdasarkan kriteria dengan menggunakan metode ini.

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

diurutkan

Aliran dapat diurutkan dengan menggunakan metode ini.

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

Streaming Di Java: Operasi Terminal:

mengumpulkan

Hasil pengolahan pada elemen-elemen aliran dapat digabungkan dengan menggunakan operasi kumpulkan.

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

untuk setiap

Metode ini digunakan untuk melakukan iterasi melalui setiap elemen yang ada di aliran.

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

mengurangi

Elemen-elemen aliran dapat direduksi menjadi satu nilai dengan menggunakan metode ini.

Daftar num = Arrays.asList (4,3,2,5) int even = num.stream (). Filter (x-> x% 2 == 0) .reduce (0, (res, i) -> res + saya)

Variabel res diberi nilai 0 pada awalnya, dan i ditambahkan padanya.

Lanjutkan dengan artikel ini di Stream di Java

Penyaringan

Kode dapat disaring dengan menggunakan metode 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 price) {this.num = num this.name = name this.price = harga}} tes kelas publik {public static void main (String [] args) {List InstrumentsList = new ArrayList () // Menambahkan Produk InstrumentsList.add (new Instrument (1, 'Guitar', 15000f)) InstrumentsList.add (baru Instrument (2, 'Piano', 18000f)) InstrumentsList.add (new Instrument (3, 'Flute', 15000f)) InstrumentsList.add (new Instrument (4, 'Drums', 48000f)) 5, 'Ukulele', 32000f)) List InstrumentPriceList2 = InstrumentsList.stream () .filter (p -> p.price> 30000) // memfilter data .map (p-> p.price) // mengambil harga .collect ( Collectors.toList ()) // mengumpulkan sebagai daftar System.out.println (InstrumentPriceList2)}}
 Keluaran: 

[48000,0, 32000,0]

Lanjutkan dengan artikel ini di Stream di Java

Iterasi:

Iterasi dapat dilakukan dengan menggunakan aliran di java.

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

Keluaran:

4

8

12

struktur program java

16

dua puluh

24

Mari kita lihat contoh lain, untuk memahami konsep Stream di java secara lebih efektif.

Contoh:

perbedaan antara peta hash dan tabel hash
import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// membuat daftar bilangan bulat List num = Arrays.asList (6,7,8,9 ) // menggunakan metode peta List squares = num.stream (). map (y -> y * y). collect (Collectors.toList ()) System.out.println (squares) // membuat daftar String List days = Arrays.asList ('Friday', 'Saturday', 'Sunday') // metode filter List res = days .stream (). filter (s-> s.startsWith ('S')). mengumpulkan (Collectors.toList ()) System.out.println (res) // metode diurutkan Daftar display = days.stream (). sort (). collect (Collectors.toList ()) System.out.println (display) / / membuat daftar bilangan bulat List number = Arrays.asList (6,9,5,7,1) // metode kumpulkan mengembalikan satu set Set sqSet = number.stream (). map (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach metode num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / kurangi metode int even = num.stream (). filter (x-> x% 2 == 0) .reduce (0, (result, i) -> result + i) System.out.println (even)}}

Keluaran:

[36, 49, 64, 81]

[Sabtu Minggu]

[Jumat Sabtu Minggu]

[81, 49, 1, 36, 25]

36

49

64

81

14

Aliran memungkinkan pengguna untuk melakukan operasi pada elemen secara efektif.

Dengan demikian, kami telah mengakhiri artikel ini tentang 'Aliran di Java'. Jika Anda ingin mempelajari lebih lanjut, lihat Pelatihan Java oleh Edureka, perusahaan pembelajaran online tepercaya. Kursus pelatihan dan sertifikasi Java J2EE dan SOA Edureka dirancang untuk melatih Anda baik konsep inti dan lanjutan Java bersama dengan berbagai kerangka kerja Java seperti Hibernate & Spring.

Ada pertanyaan untuk kami? Harap sebutkan di bagian komentar blog ini dan kami akan menghubungi Anda kembali secepatnya.