Rumah Keuangan Pribadi Menggunakan Streams and Lambda Expressions di Java - dummies

Menggunakan Streams and Lambda Expressions di Java - dummies

Video: Belajar Java Lambda Expression - 5 Menggunakan Lambda Expression 2024

Video: Belajar Java Lambda Expression - 5 Menggunakan Lambda Expression 2024
Anonim

Java memiliki metode mewah yang memanfaatkan aliran sungai dan ekspresi lambda secara optimal. Dengan aliran dan ekspresi lambda, Anda dapat membuat jalur perakitan. Solusi perakitan menggunakan konsep dari pemrograman fungsional.

Jalur perakitan terdiri dari beberapa metode. Setiap metode mengambil data, mengubah data dengan cara tertentu atau lainnya, dan menyerahkan hasilnya ke metode berikutnya. Ini jalur perakitan.

Sebuah rangkaian pemrograman fungsional.

Setiap kotak mewakili sekelompok bahan baku saat ditransformasikan di sepanjang jalur perakitan. Setiap panah mewakili sebuah metode (atau, secara metaforis, seorang pekerja di jalur perakitan).

Misalnya, dalam transisi dari kotak kedua ke kotak ketiga, metode pekerja (metode filter ) menyaring penjualan item yang bukan DVD. Bayangkan Lucy Ricardo berdiri di antara kotak kedua dan ketiga, menghapus setiap buku atau CD dari jalur perakitan dan melemparkannya dengan ceroboh ke lantai.

Parameter untuk metode filter adalah Predikat - sebuah ekspresi lambda yang hasilnya boolean . Metode filter menyaring item yang tidak lulus tes true / false dari tes lambda .

Beberapa Metode Pemrograman Fungsional
Nama Metode Anggota Dari Parameter Jenis Hasil Nilai Hasil
stream Koleksi (misalnya, sebuah ArrayList , object) (none) Stream Aliran yang meludahkan elemen koleksi
filter Streaming Predikat Aliran > Aliran baru yang berisi nilai yang menghasilkan ekspresi lambda true map
Stream Function Stream Aliran baru yang berisi hasil penerapan ekspresi lambda ke arus masuk reduce
Stream BinaryOperator Jenis yang digunakan oleh BinaryOperator Hasil menggabungkan semua nilai di arus masuk
Dalam transisi dari kotak ketiga ke kotak keempat, metode pekerja (metode

map ) menarik harga dari masing-masing penjualan . Dari tempat pekerja itu seterusnya, jalur perakitan hanya berisi nilai harga . Agar lebih tepat, metode Java

map mengambil Function seperti (penjualan) -> penjualan. getPrice ()

dan gunakan

Function untuk setiap nilai dalam sebuah aliran. Jadi metode map mengambil arus masuk penjualan dan membuat arus keluar nilai harga . Dalam peralihan dari kotak keempat ke kotak kelima, metode pekerja (metode

reduce ) menambahkan harga penjualan DVD.Metode mengurangi Java mengambil dua parameter: Parameter pertama adalah nilai awal.

Pada gambar di atas, nilai awalnya adalah

0. 0 . Parameter kedua adalah

BinaryOperator . Pada gambar di atas, mengurangi metode BinaryOperator adalah (price1, price2) -> price1 + price2

Metode

reduce menggunakan BinaryOperator untuk menggabungkan nilai dari aliran masuk. Nilai awal berfungsi sebagai titik awal untuk menggabungkan semua. Jadi, metode reduce melakukan dua penambahan. Metode pengurangan menambahkan dua nilai dari arus masuk.

Sebagai perbandingan, bayangkan metode

mengurangi (10. 0, (value1, value2) -> value1 * value2)

dengan arus yang nilainya termasuk

3. 0 , 2. 0 , dan 5. 0 . Tindakan yang dihasilkan ditunjukkan di bawah Metode perampingan mengalikan nilai dari arus masuk.

Anda mungkin pernah mendengar tentang model pemrograman Google MapReduce. Kesamaan antara nama model pemrograman dan nama metode Java map dan reduce bukanlah sebuah kebetulan. Diambil secara keseluruhan, seluruh perakitan mencantumkan harga DVD yang terjual. Kode di atas berisi program lengkap menggunakan stream dan ekspresi lambda gambar pertama di atas.

impor java teks. NumberFormat;

impor java util. ArrayList;

public class TallySales {

public static void main (String [] args) {

ArrayList

sales = new ArrayList <> (); Mata uang NumberFormat = NumberFormat. getCurrencyInstance ();

isiTheList (penjualan);

total ganda = penjualan. stream ()

. filter ((penjualan) -> penjualan. getItem () sama dengan ("DVD"))

. peta ((penjualan) -> penjualan getPrice ())

. kurangi (0, 0, (price1, price2) -> price1 + price2);

Sistem di luar. println (format mata uang (total));

}

pengisian void statik statisTotal (ArrayList

) { penjualan. tambahkan (Penjualan baru ("DVD", 15. 00));

penjualan. tambahkan (Penjualan baru ("Buku", 12. 00));

penjualan. tambahkan (Penjualan baru ("DVD", 21. 00));

penjualan. tambahkan (New Sale ("CD", 5. 25));

}

}

Kode ini membutuhkan Java 8 atau yang lebih baru. Jika IDE Anda disetel untuk versi Java sebelumnya, Anda mungkin harus bermain-main dengan pengaturan IDE. Anda bahkan mungkin harus mendownload versi Java yang lebih baru.

Bentuk huruf tebal adalah satu pernyataan tugas besar di Jawa. Sisi kanan dari pernyataan berisi urutan pemanggilan metode. Setiap pemanggilan metode mengembalikan sebuah objek, dan setiap objek tersebut adalah objek sebelum titik di pemanggilan metode berikutnya. Begitulah cara Anda membentuk jalur perakitan.

Misalnya, di dekat kode tebal, nama

penjualan mengacu pada objek ArrayList . Setiap objek ArrayList memiliki metode stream . Pada kode diatas, penjualan. stream () adalah panggilan untuk metode ArrayList objek stream . Metode aliran mengembalikan sebuah instance kelas Java

Stream . (Sungguh kejutan!) Jadi penjualan. stream () mengacu pada objek Stream . Mendapatkan semua penjualan DVD.

Objek setiap

Stream memiliki metode filter . Jadi penjualan. aliran(). Filter> ((penjualan) -> penjualan getItem () sama dengan ("DVD"))

adalah panggilan ke metode

⁣Stream objek filter . Pola berlanjut. Metode

Stream object's map mengembalikan objek Stream objek - a Stream yang berisi harga. Mendapatkan harga dari setiap penjualan DVD.

Untuk itu

Stream harga yang Anda terapkan metode reduce , yang menghasilkan nilai satu double - jumlah harga DVD. Mendapatkan harga total semua penjualan DVD.

Menggunakan Streams and Lambda Expressions di Java - dummies

Pilihan Editor

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Bagaimana Menutup presentasi PowerPoint 2007 Presentation - dummies

Menutup presentasi PowerPoint seperti memasukkannya ke dalam folder, dan menyimpan folder di laci yang tepat. Ada tiga cara yang berbeda untuk menutup presentasi PowerPoint:

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bagaimana Bandingkan Fitur PowerPoint 2013 Presentation - dummies

Bandingkan fitur di PowerPoint 2013 memungkinkan Anda membandingkan perbedaan antara dua versi dari sebuah presentasi dan menerima atau menolak perbedaan. Fitur ini berguna jika Anda telah mengirimkan salinan presentasi ke reviewer dan Anda ingin secara selektif menggabungkan perubahan resensi. Menggunakan fitur Compare sangatlah mudah. Berikut adalah ...

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

Bagaimana Mengompres Gambar Anda di PowerPoint 2013 - dummies

PowerPoint 2013 mencakup perintah Compress Pictures yang dapat menghilangkan detail asing di gambar Anda dan dengan demikian mengurangi ukuran file presentasi Anda. Untuk menghemat lebih banyak ruang, perintah Compress Pictures juga akan menghapus bagian gambar Anda yang telah dipotong. Anda bisa menggunakan perintah ini untuk memampatkan hanya satu ...

Pilihan Editor

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Cara Menggunakan NaturallySpeaking dengan Kotak Dialog Umum - dummies

Secara alamiSpeaking dapat membantu Anda mengendalikan kotak dialog. Ini adalah & ldquo; Lihat Ma, tidak ada tangan & rdquo; contoh. Semuanya dilakukan dengan perintah suara. Tentu, terkadang Anda bisa menyelesaikan tugas lebih cepat dengan mematuk kunci atau menggerakkan mouse Anda. Seiring waktu, Anda akan menyelesaikan kompromi Anda sendiri antara perintah suara dan perintah mouse dan keyboard. Untuk pencarian berikut, NaturallySpeaking ...

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Bagaimana Menggunakan "Klik" Command di NaturallySpeaking - dummies

Para insinyur di Nuance dapat ' t mengantisipasi setiap perintah yang mungkin digunakan oleh aplikasi nyasar, jadi mereka telah melakukan hal terbaik berikutnya: Mereka membuat perintah "Klik" untuk mengubah menu aplikasi menjadi perintah suara. Begini cara menggunakannya: Katakan, "Klik " untuk memperluas menu. Setiap judul yang muncul pada aplikasi ...

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Bagaimana Menggunakan Mikrofon Profesional Naga Secara Pribadi:" Apakah Hal Ini Aktif? " - dummies

Dapat menjadi lucu saat Anda menyadari bahwa mikrofon Profesional Dragon Professional Anda telah berada di sepanjang waktu Anda menerima telepon terakhir Anda. Kata-kata yang Anda didiktekan tidak akan terlihat seperti apa yang Anda katakan. Ada jeda; Anda membuang muka dan mungkin mikrofon ditekan di bawah dagu Anda. Segera hapus ...

Pilihan Editor

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

10 Hal yang sering terjadi pada PowerPoint 2016 - dummies

Jumlah sebenarnya dari hal-hal yang dapat terjadi Salah saat bekerja dengan PowerPoint 2016 mungkin mendekati 10.000, tapi sepuluh di antaranya adalah yang paling sering salah. Anda tidak dapat menemukan file Anda Entah Anda menyimpan file dalam folder yang berbeda, atau Anda menggunakan nama file yang berbeda untuk menyimpannya ...

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Menerapkan Style to a Table pada PowerPoint 2007 - dummies

Setelah Anda membuat sebuah tabel di slide PowerPoint, gunakan kontrol di bawah Table Tools pada PowerPoint Ribbon untuk memformatnya. PowerPoint menawarkan beberapa gaya tabel yang telah ditentukan. Sebelum Anda menerapkan sebuah gaya, gunakan kotak centang yang muncul di sisi kiri tab Desain di bawah Table Tools on the Ribbon. Header ...

5 Trik bagus untuk PowerPoint 2016 - dummies

5 Trik bagus untuk PowerPoint 2016 - dummies

Ada banyak hal yang menyukai PowerPoint 2016, terutama jika Anda tahu caranya untuk menggunakan semua lonceng dan peluit. Berikut adalah beberapa tip dan trik yang perlu diingat: Skala ukuran slide ke dimensi monitor Ada dua rasio aspek dasar untuk layar komputer: standar (4: 3) dan lebar (16: 9). Angka-angka ini ...