Aliran Java untuk Pemula: Pengenalan Menggunakan Aliran di Java

Aliran Java untuk Pemula: Pengenalan Menggunakan Aliran di Java

Aliran Java 8 membolehkan pengembang mengekstrak data yang tepat dari koleksi besar, menggunakan satu set operasi yang telah ditentukan.





Sebelum peluncuran Java 8, menggunakan istilah 'stream' di Java secara automatik akan dikaitkan dengan I / O. Namun, Java 8 memperkenalkan aliran yang dapat disebut sebagai satu set langkah komputasi yang dirantai bersama dalam apa yang biasanya disebut sebagai 'aliran pipa.'





Artikel ini akan memperkenalkan anda ke aliran Java 8 dan menunjukkan bagaimana ia berguna dalam projek anda.





Apa itu Aliran?

Aliran adalah antara muka Java yang mengambil sumber, melakukan serangkaian operasi untuk mengekstrak data tertentu, kemudian memberikan data tersebut ke aplikasi untuk digunakan. Pada dasarnya, ia membolehkan anda mengekstrak data khusus dari koleksi data umum.

Bagaimana Aliran Berfungsi

Saluran saluran selalu bermula dengan sumber. Jenis sumber bergantung pada jenis data yang anda hadapi, tetapi dua sumber yang lebih popular adalah susunan dan koleksi.



Untuk mengubah koleksi menjadi aliran awal, anda perlu menambahkan aliran () berfungsi ke sumber. Ini akan meletakkan sumber ke saluran paip aliran di mana beberapa operasi perantaraan yang berbeza (seperti penapis () dan urutkan () ) boleh beroperasi di atasnya.

Setelah semua operasi perantaraan yang diperlukan dijalankan, anda dapat memperkenalkan operasi terminal (seperti untuk setiap() ), yang akan menghasilkan data yang diekstrak sebelumnya dari sumbernya.





Hidup Tanpa Aliran

Java 8 dirilis pada tahun 2014, tetapi sebelum itu, pengembang Java masih perlu mengekstrak data khusus dari koleksi data umum.

di mana lampu suluh saya di telefon ini

Katakan anda mempunyai senarai watak rawak yang digabungkan dengan nombor rawak untuk membentuk nilai rentetan yang unik, tetapi anda hanya mahukan nilai yang bermula dengan watak C dan anda ingin menyusun hasilnya dalam urutan menaik. Ini adalah bagaimana anda akan mengekstrak data tersebut tanpa aliran.





Berkaitan: Apa yang Perlu Anda Ketahui Tentang Menggunakan String di Java

Menapis dan Menyusun Nilai Tanpa Aliran Contoh


import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'C13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'C16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//declare the array list will store needed values
List requiredValues = new ArrayList();
//extracting the required values and storing them in reqquiredValues
randomValues.forEach(value -> {
if(value.startsWith('C')) {
requiredValues.add(value);
}
});
//sort the requiredValues in ascending order
requiredValues.sort((String value1, String value2) -> value1.compareTo(value2));
//print each value to the console
requiredValues.forEach((String value) -> System.out.println(value));
}
}

Anda juga perlu menyatakan dan menginisialisasi senarai array sama ada anda menggunakan aliran atau kaedah pengekstrakan lain. Apa yang tidak perlu anda lakukan jika anda menggunakan aliran adalah menyatakan pemboleh ubah baru untuk menahan nilai yang diperlukan, atau membuat lima baris kod tambah lain dalam contoh di atas.

Berkaitan: Cara Membuat dan Melakukan Operasi pada Array di Java

Kod di atas menghasilkan output berikut di konsol:


C11
C12
C13
C14
C15
C16

Kehidupan Dengan Aliran

Dalam pengaturcaraan, kecekapan menghasilkan hasil yang sama dengan kod yang jauh lebih sedikit. Inilah yang dilakukan oleh saluran paip untuk pengaturcara. Oleh itu, apabila seseorang bertanya: mengapa penting untuk menggunakan aliran dalam projek anda? Ringkasnya: aliran menyokong pengaturcaraan yang cekap.

Teruskan dengan contoh kami di atas, ini adalah bagaimana memperkenalkan aliran mengubah keseluruhan program.

Menapis dan Menyusun Nilai Dengan Contoh Aliran


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'C13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'C16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

Kod di atas menunjukkan betapa kuatnya antara muka aliran. Ia memerlukan senarai nilai array rawak dan mengubahnya menjadi aliran menggunakan aliran () fungsi. Aliran kemudian dikurangkan ke senarai array yang mengandungi nilai yang diperlukan (yang merupakan semua nilai yang dimulai dengan C ), menggunakan penapis () fungsi.

Seperti yang anda lihat dalam contoh di atas, C nilai disusun secara rawak dalam senarai tatasusunan. Sekiranya anda mencetak aliran pada titik ini dalam perancangan, nilainya C15 akan dicetak terlebih dahulu. Oleh itu, urutkan () fungsi diperkenalkan ke saluran paip aliran untuk menyusun ulang array baru dalam urutan menaik.

Fungsi terakhir dalam saluran paip adalah untuk setiap() fungsi. Ini adalah fungsi terminal yang digunakan untuk menghentikan saluran paip aliran dan menghasilkan hasil berikut di konsol:


C11
C12
C13
C14
C15
C16

Stream Operasi Pertengahan

Terdapat senarai operasi perantaraan yang luas yang dapat digunakan dalam saluran paip.

Saluran saluran selalu bermula dengan satu sumber dan a aliran () berfungsi, dan selalu berakhir dengan operasi terminal tunggal (walaupun ada beberapa yang berbeza untuk dipilih.) Tetapi di antara kedua bahagian ini terdapat senarai enam operasi perantaraan yang boleh anda gunakan.

Dalam contoh kami di atas, hanya dua operasi perantaraan ini yang digunakan --- penapis () dan urutkan () . Operasi perantaraan yang anda pilih akan bergantung pada tugas yang ingin anda laksanakan.

Sekiranya ada nilai yang bermula dengan C dalam senarai susunan kami di atas adalah huruf kecil, dan kami melakukan operasi perantaraan yang sama pada mereka, kami akan mendapat hasil berikut.

Menjalankan Operasi Penapis dan Susun pada Nilai Huruf Kecil


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'c13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'c16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

Kod di atas akan menghasilkan nilai berikut di konsol:


C11
C12
C14
C15

Satu-satunya masalah dengan output di atas adalah bahawa ia tidak mewakili semua tepat C nilai dalam senarai tatasusunan kami. Kaedah yang baik untuk memperbaiki kesilapan kecil ini adalah dengan memperkenalkan operasi perantaraan lain ke saluran paip aliran; operasi ini dikenali sebagai peta () fungsi.

Menggunakan Contoh Fungsi Peta


import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
//declare and initialize the array list
List randomValues = Arrays.asList(
'E11', 'D12', 'A13', 'F14', 'C15', 'A16',
'B11', 'B12', 'c13', 'B14', 'B15', 'B16',
'F12', 'E13', 'C11', 'C14', 'A15', 'c16',
'F11', 'C12', 'D13', 'E14', 'D15', 'D16'
);
//transforms all lower case characters to upper case,
//retrieves only values that start with C, sort them, and print them to the console.
randomValues.stream().map(String::toUpperCase).filter(value->value.startsWith('C')).sorted().forEach(System.out::println);
}
}

The peta () fungsi mengubah objek dari satu keadaan ke keadaan yang lain; dalam contoh kami di atas ia mengubah semua watak huruf kecil dalam senarai susunan menjadi aksara huruf besar.

Meletakkan peta () berfungsi sebelum penapis () fungsi mengambil semua nilai yang bermula dengan C dari senarai tatasusunan.

Kod di atas menghasilkan hasil berikut di konsol, berjaya mewakili semua C nilai dalam senarai tatasusunan.


C11
C12
C13
C14
C15
C16

Tiga operasi perantaraan lain yang boleh anda gunakan dalam aplikasi anda termasuk:

  • mengintip ()
  • had()
  • langkau ()

Aliran Java 8 Memudahkan Penciptaan Kod yang Cekap

Dengan aliran Java 8, anda dapat mengekstrak data yang sangat spesifik dan relevan dari sumber besar dengan satu baris kod. Selagi anda memasukkan yang awal aliran () fungsi dan pengendali terminal, anda boleh menggunakan kombinasi operasi perantaraan yang memberikan output yang sesuai untuk tujuan anda.

windows 10 audio realtek tiada suara

Sekiranya anda tertanya-tanya tentang garis kod yang dilampirkan di dalam kami penapis () fungsi; ia dikenali sebagai 'ungkapan lambda.' Ungkapan lambda adalah ciri lain yang diperkenalkan dengan Java 8, dan ia mempunyai banyak nugget yang mungkin berguna.

Berkongsi Berkongsi Tweet E-mel Pengenalan Pantas ke Java 8 Lambdas

Sekiranya anda seorang pengaturcara Java dan anda berminat untuk mempelajari lebih lanjut mengenai lambda Java 8, dalam artikel ini kita akan melihat lebih dekat sintaks dan penggunaan lambda.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Jawa
  • Tutorial Pengekodan
Mengenai Pengarang Kadeisha Kean(21 Artikel Diterbitkan)

Kadeisha Kean adalah Pembangun Perisian Penuh dan Penulis Teknikal / Teknologi. Dia mempunyai kemampuan berbeza untuk mempermudah beberapa konsep teknologi yang paling kompleks; menghasilkan bahan yang dapat difahami dengan mudah oleh mana-mana pemula teknologi. Dia minat menulis, mengembangkan perisian yang menarik, dan menjelajah dunia (melalui dokumentari).

Lagi Dari Kadeisha Kean

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan