Strim Java ialah salah satu daripada komponen koleksi dan ia adalah API untuk mengulangi itemnya secara dalaman dan iaitu, ia boleh mengulang elemennya sendiri jika kita mahu menggunakan ciri lelaran Koleksi Java, seperti Java Iterator atau Java untuk-setiap gelung dengan antara muka lelaran Java ia mesti dilaksanakan lelaran elemen aliran tidak mengubah nilai dalam memori struktur data dan ia akan memberikan keputusan dengan menggunakan kaedah lalai yang boleh kita peruntukkan ruang lalai seperti struktur saluran paip untuk menghasilkan output yang diingini.
Pertama yang mungkin dan kebanyakan hujah untuk memperkenalkan kaedah strim kepada antara muka koleksi. Setelah senarai item ditunjukkan, data strim akan dibuka dengan strim tertentu. Tindakan yang paling mudah dan paling popular ialah gelung forEach(), yang berjalan melalui elemen strim dan memanggil fungsi yang diberikan pada setiap satu. Kaedah ini juga digunakan secara meluas dan ia telah disertakan dalam Iterable, Map dan kelas lain. Strim tidak lebih daripada pembungkus data, mereka tidak mahu menyimpan data atau menjejaskan sumber data asas. Banyak operasi berguna dan berprestasi tinggi disokong oleh strim, yang diterangkan secara ringkas dengan lambda yang boleh dilakukan secara berurutan atau selari. Strim bukan struktur data kerana ia tidak menyimpan sebarang data. Ia juga tidak membuat sebarang perubahan pada sumber data asas. Tidak kira sama ada data kami diproses secara berurutan atau tidak tertib urutan jika data selari dengan Strim kami dipesan; pelaksanaan akan memastikan Strim adalah susunan pertemuan. Secara amnya, strim adalah selamat untuk benang jika Spliterator yang digunakan mempunyai sifat KONCURRENT. API aliran mentakrifkan beberapa kontrak untuk setiap langkah saluran paip dan jika mana-mana daripadanya rosak, tingkah laku atau pengecualian yang tidak dijangka mungkin berlaku.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Strim mengambil input daripada Koleksi, Tatasusunan dan saluran Input/Output lain ini adalah cara untuk menghantar input kepada fungsi. Dengan bantuan prosedur penciptaan baharu dan objek, objek akan dibuat dan diperuntukkan untuk panggilan fungsi tertentu. Selain itu, Aliran hanya memberikan hasil keluaran mengikut seni bina saluran paip dan kaedahnya ia tidak akan mengubah nilai dan proses struktur data sebenar. Selain itu, koleksi terutamanya diulang dengan bantuan gelung lain dan luaran tetapi apabila kita gunakan untuk menstrim, ia perlu diulang secara dalaman dengan bantuan operasi gelung tertentu kebanyakannya ia tidak memerlukan gelung luaran. Salah satu kaedah terminal API Stream dalam Java 8 ialah kaedah collect() untuk mengumpul data. Ia membolehkan kami menjalankan operasi lipatan boleh ubah menggunakan komponen data yang terkandung dalam contoh Strim (cth., membungkus semula elemen ke dalam struktur data dan menggunakan logik tambahan, menggabungkannya, dsb.). Dalam kelas Pengumpul, anda akan menemui semua pelaksanaan yang dipratentukan. Untuk mendapat manfaat daripada kebolehbacaan yang lebih baik, adalah menjadi amalan biasa untuk menggunakan import statik berikut. Untuk mengagregatkan semua item Strim ke dalam objek Senarai, gunakan pengumpul toList. Perkara penting yang perlu diketahui ialah dengan teknik ini, kita tidak boleh menganggap sebarang pelaksanaan Senarai tertentu. Sebaliknya, kita boleh menggunakan toCollection jika kita mahukan kawalan yang lebih besar ke atas perkara ini. Untuk mengagregatkan semua item Strim ke dalam contoh Set, gunakan pengumpul toSet. Adalah penting untuk menyedari bahawa menggunakan kaedah ini, kita tidak boleh menganggap sebarang pelaksanaan Set tertentu. Sebaliknya, kita boleh menggunakan koleksi jika kita mahukan kawalan yang lebih besar ke atas perkara ini. Tiada unsur pendua dalam Set. Jika koleksi kami mengandungi komponen yang serupa, ia hanya akan muncul sekali dalam Set terakhir. Untuk mengagregatkan item Strim ke dalam contoh Peta, gunakan pengumpul toMap. Untuk berbuat demikian, kami memerlukan dua fungsi: keyMapper dan valueMapper. Untuk mengekstrak kunci Peta daripada elemen Stream, kami akan menggunakan keyMapper dan untuk mendapatkan nilai yang dikaitkan dengan kunci tertentu, kami akan menggunakan valueMapper.
Di java cara yang berbeza untuk mencipta Strim seperti menggunakan pengumpulan, mencipta data strim daripada nilai yang ditentukan. Ia juga mencipta tatasusunan menggunakan data aliran ia mengira ruang kosong dengan bantuan Strim. kaedah empty() bukan sahaja mengira ruang kosong kita boleh mencipta data Stream menggunakan Stream. kaedah pembina(). Dengan bantuan kaedah iterate(), kita boleh mengira data Stream tak terhingga kerana Iterable ialah antara muka dan ia tidak menyediakan sebarang kaedah lalai kaedah StreamSupport.Stream() dan dapatkan data Stream menggunakan objek Iterable.
import java.util.*; import java.util.stream.*; class first { private static <T> void methd(Iterable<T> itr) { Stream<T> str = StreamSupport .stream(itr.spliterator(), false); Iterator<T> its = str.iterator(); while (its.hasNext()) { System.out.print(its.next() + " "); } } public static void main(String[] args) { Iterable<String> itr = Arrays.<em>asList</em>("Marina", "Adyar", "Parrys or Broadway","Tambaram","Gundy"); methd(itr); } }
Sampel Output:
In the above example we used Stream Instance creation and also we can use the StreamSupport class for accessing the stream() method. Like that we can use the Iterator<> interface for accessing the stream inputs and assign it to the variable. In the main method using Iterable<> interface we can access the values as Arrays and asList() method.
import java.util.*; import java.util.stream.*; class Second { private static <T> void methd(Iterator<T> itr) { Spliterator<T> splititr = Spliterators spliteratorUnknownSize(itr, Spliterator.NONNULL); Stream<T> str = StreamSupport.<em>stream</em>(splititr, false); Iterator<T> its = str.iterator(); while (its.hasNext()) { System.<em>out</em>.print(its.next() + " "); } } public static void main(String[] args) Iterator<String> itre = Arrays .asList("Thiruvanmaiyur", "Perungalathur", "TNagar","Central","Besant Nagar") .iterator(); methd(itre); } }
Sample Output:
In the above example, we used an additionally Spliterator class for accessing the Stream inputs using Iterator interface we can access the Array List inputs using the asList() method.
While streams aren’t used by everyone and don’t necessarily indicate a superior approach, free certificate courses can help developers understand this newer way of programming, which incorporates functional-style programming and lambda expressions for Java. It’s up to developers to determine whether to use functional or imperative programming styles, and by taking advantage of free certificate courses, they can learn how to effectively combine both ideas to enhance their programs with enough effort.
Atas ialah kandungan terperinci Aliran Koleksi Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!