Video: Perubahan gigi setelah memakai behel selama 9 bulan & bedanya Roth, Ceramic, Damon braces 2024
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.
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.
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
|
|
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
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 ();
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 ("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
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
harga yang anda gunakan
mengurangkan
kaedah, yang menghasilkan satu nilai
dobel
- jumlah harga DVD.
Mendapatkan harga keseluruhan semua jualan DVD.