Rumah Kewangan Peribadi Dengan menggunakan Ekspresi Limbah dan Lambda di Jawa - patung

Dengan menggunakan Ekspresi Limbah dan Lambda di Jawa - patung

Video: Perubahan gigi setelah memakai behel selama 9 bulan & bedanya Roth, Ceramic, Damon braces 2024

Video: Perubahan gigi setelah memakai behel selama 9 bulan & bedanya Roth, Ceramic, Damon braces 2024
Anonim

Java mempunyai kaedah mewah yang menggunakan ungkapan aliran dan lambda yang optimum. Dengan ungkapan aliran dan lambda, anda boleh membuat satu barisan pemasangan. Penyelesaian garis pemasangan menggunakan konsep dari pengaturcaraan fungsional.

Barisan pemasangan terdiri daripada beberapa kaedah. Setiap kaedah mengambil data, mengubah data dalam beberapa cara atau lain-lain, dan menyerahkan hasilnya kepada kaedah seterusnya selaras. Berikut adalah barisan pemasangan.

Satu barisan pemrograman pengaturcaraan berfungsi.

Setiap kotak mewakili sekumpulan bahan mentah ketika mereka berubah di sepanjang garis pemasangan. Setiap anak panah mewakili satu kaedah (atau, metafora, seorang pekerja di garisan pemasangan).

Sebagai contoh, dalam peralihan dari kotak kedua ke kotak ketiga, kaedah pekerja (kaedah penapis ) menapis jualan item yang bukan DVD. Bayangkan Lucy Ricardo berdiri di antara kotak kedua dan ketiga, mengeluarkan setiap buku atau CD dari barisan pemasangan dan melemparkannya ke lantai.

Parameter ke kaedah penapis Java ialah Predikat - ungkapan lambda yang hasil boolean . Kaedah penapis menyaring item yang tidak lulus uji benar / palsu lambda.

Beberapa Kaedah Pengaturcaraan Fungsian
Nama Kaedah Member Of Parameter Type Result Value Result
stream Collection ArrayList , objek) (none) Stream Stream yang meludahkan elemen koleksi
penapis Stream Predikat > Aliran baru yang mengandungi nilai yang mana ekspresi lambda benar peta
Stream Fungsi Stream Aliran baru yang mengandungi hasil menerapkan ungkapan lambda ke aliran masuk mengurangkan
Stream BinaryOperator Jenis yang digunakan oleh BinaryOperator Hasil menggabungkan semua nilai dalam strim masuk
Dalam peralihan dari kotak ketiga ke kotak keempat, kaedah pekerja (kaedah

peta ) menarik harga daripada setiap jualan . Dari tempat pekerja seterusnya, barisan pemasangan hanya mengandungi harga harga . Untuk lebih tepat, kaedah

peta Java mengambil Fungsi seperti (jualan) -> dijual. getPrice ()

dan gunakan fungsi

untuk setiap nilai dalam strim. Jadi kaedah peta mengambil arus masuk jualan dan membuat aliran keluar harga nilai. Dalam peralihan dari kotak keempat ke kotak kelima, kaedah pekerja (mengurangkan kaedah) menambah harga jualan DVD.Kaedah Java mengurangkan mengambil dua parameter: Parameter pertama adalah nilai awal.

Dalam imej di atas, nilai awal

0. 0 . Parameter kedua ialah

BinaryOperator . Dalam imej di atas, mengurangkan kaedah BinaryOperator adalah (price1, price2) -> price1 + price2

menggunakan BinaryOperator untuk menggabungkan nilai-nilai dari aliran masuk. Nilai awal berfungsi sebagai titik permulaan untuk semua gabungan. Jadi, mengurangkan kaedah melakukan dua penambahan. Kaedah mengurangkan menambah dua nilai dari strim masuk. Sebagai perbandingan, bayangkan memanggil kaedah

mengurangkan (10.0, (nilai1, nilai2) -> nilai1 * value2)

dengan aliran yang nilainya termasuk

3. 0 , 2. 0 , dan 5. 0 . Tindakan yang dihasilkan ditunjukkan di bawah Kaedah mengurangkan mendarabkan nilai dari aliran masuk. Anda mungkin pernah mendengar model pemrograman MapReduce Google. Kesamaan antara nama model pengaturcaraan dan nama kaedah Java

peta dan mengurangkan bukan kebetulan. Diambil secara keseluruhannya, barisan keseluruhan pemasangan harga DVD dijual. Kod di atas mengandungi program lengkap menggunakan ungkapan aliran dan lambda imej pertama di atas. java import. teks. NumberFormat;

java import. util. ArrayList;

kelas awam TallySales {

public static void main (String [] args) {

ArrayList

sales = new ArrayList <> ();

NumberFormat currency = NumberFormat. getCurrencyInstance (); fillTheList (jualan);

jumlah berganda = jualan. aliran ()

. penapis ((jualan) -> jualan. getItem (). sama dengan ("DVD"))

. peta ((jualan) -> jualan getPrice ())

. mengurangkan (0, 0, (price1, price2) -> price1 + price2); Sistem

. keluar. cetakan (format mata wang. (jumlah));

}

static void fillTheList (ArrayList

sales) {

jualan. tambah (Jualan baru ("DVD", 15. 00)); Jualan . tambah (Jualan baru ("Buku", 12 00)); Jualan

. tambah (Jualan baru ("DVD", 21. 00)); Jualan

. tambah (Jualan baru ("CD", 25));

}

}

Kod ini memerlukan Java 8 atau lebih baru. Sekiranya IDE anda ditetapkan untuk versi Java yang lebih awal, anda mungkin perlu menguji tetapan IDE. Anda mungkin perlu memuat turun Java versi yang lebih baru.

The boldface adalah satu pernyataan besar Java. Bahagian kanan pernyataan mengandungi urutan panggilan kaedah. Setiap panggilan kaedah mengembalikan objek, dan setiap objek tersebut adalah perkara sebelum titik dalam panggilan kaedah seterusnya. Itulah bagaimana anda membentuk barisan pemasangan.

Sebagai contoh, berhampiran permulaan kod tebal, nama

jualan

merujuk kepada objek ArrayList . Setiap objek ArrayList mempunyai kaedah stream . Dalam kod di atas, jualan. aliran () adalah panggilan ke kaedah ArrayList objek stream . Kaedah aliran mengembalikan satu contoh kelas Stream

Java. (Apa kejutan!) Jadi jualan . aliran () merujuk kepada objek Stream . Mendapatkan semua jualan DVD. Setiap objek

Stream

mempunyai kaedah penapis . Jadi jualan. strim (). sama dengan ("DVD")) adalah panggilan kepada kaedah

⁣Stream

objek penyaring . Coraknya berterusan. Kaedah Stream

objek peta mengembalikan lagi objek Stream - objek Stream yang mengandungi harga. Mendapatkan harga dari setiap jualan DVD. Kepada itu

Stream

harga yang anda gunakan mengurangkan kaedah, yang menghasilkan satu nilai dobel - jumlah harga DVD. Mendapatkan harga keseluruhan semua jualan DVD.

Dengan menggunakan Ekspresi Limbah dan Lambda di Jawa - patung

Pilihan Editor

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Jika anda mahu menggunakan MapController untuk apl iOS anda, anda memerlukan sebuah saluran keluar. Dengan Pemilih peta anda dijaga, tiba waktunya untuk mencipta saluran supaya MapController mempunyai akses ke paparan Peta untuk memusatkan peta dan mempunyai paparan anotasi. Ikuti langkah berikut:

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Senibina aplikasi adalah di mana anda akan bermula dengan pembangunan aplikasi iOS anda. Pada tahap asas, kebanyakan apl terdiri daripada komponen asas yang sama. Kebanyakan aplikasi terdiri daripada yang berikut: Model: Objek model merangkumi logik dan kandungan (data) aplikasi. Views: Kandungan data tidak berguna jika pengguna anda ...

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Manusia, manusia gua dan manusia moden, adalah omnivora . Gaya hidup Paleo membina warisan makan daging. Ahli antropologi bersetuju bahawa nenek moyang kita yang terdahulu adalah pemakan daging, dan saintis menganggarkan bahawa gen kita adalah 99. 9 peratus sama dengan mereka pada masa itu. Daging menyediakan kita dengan protein, asid lemak penting, dan vitamin - sama seperti ...

Pilihan Editor

Bersukacita dengan Perspektif Hak - monyet

Bersukacita dengan Perspektif Hak - monyet

Tidak seperti binatang lain, mengenai pilihan! Anda boleh memilih untuk berbahagia. Anda boleh memilih untuk melihat kehidupan sebagai kaca separuh penuh (optimistik) atau kaca setengah kosong (pesimis). Semuanya datang kepada sama ada anda menentukan masalah sebagai cabaran atau krisis. Mempunyai perspektif yang betul adalah ...

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Akhir-akhir ini, manusia memerlukan rancangan untuk semuanya. Adakah rancangan ini menjadikan anda lebih bahagia? Lebih kurang dan lebih sedikit orang boleh melalui hari tanpa BlackBerry. Ibu bapa merancang untuk pendidikan kolej anak-anak mereka apabila anak-anak berada di tadika. Ada perancang persaraan, perancang perjalanan, perancang perkahwinan, dan bahkan ...

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Bagaimana membesarkan anak-anak anda tidak hanya menjejaskan betapa gembiranya mereka; ia memberi kesan kepada bagaimana mereka melakukan persembahan di sekolah, sama ada mereka mengambil merokok, bagaimana mungkin mereka akan mengalami kemurungan, dan sama ada mereka terlibat dalam tingkah laku seksual yang berisiko. Menurut ahli psikologi yang mengkaji hal semacam ini, terdapat empat gaya utama ...

Pilihan Editor

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Mod rakaman lalai excel adalah rujukan mutlak. Apabila rujukan sel dalam formula adalah rujukan mutlak, ia tidak menyesuaikan secara automatik apabila formula disisipkan ke lokasi baru. Cara terbaik untuk memahami bagaimana konsep ini digunakan untuk makro adalah mencuba. Catat makro yang mengira baris ...

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Menghubungkan formula adalah formula dalam Excel 2007 yang merujuk lokasi dalam lembaran kerja yang sama, buku kerja sama, atau bahkan buku kerja yang berbeza. Apabila anda mencipta formula pautan, ia membawa formula rumit atau asal ke lokasi baru supaya hasil dalam formula pengaudan tetap terikat secara dinamik kepada asal. Jika ...

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rujukan relatif dalam makro Excel bermakna relatif kepada sel yang sedang aktif . Oleh itu, berhati-hati dengan pilihan sel aktif anda - kedua-duanya apabila anda merakam rujukan makro relatif dan apabila anda menjalankannya. Pertama, buka Sample File. xlsx boleh didapati dalam talian. Kemudian, gunakan langkah-langkah berikut untuk merakam makro rujukan relatif: Pada ...