国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah Java javaTutorial ungkapan lambda di Jawa

ungkapan lambda di Jawa

Jun 09, 2023 am 10:17 AM
java ungkapan lambda

Ekspresi Lambda dalam Java

Dengan keluaran Java 8, ungkapan lambda telah menjadi salah satu topik yang paling membimbangkan dan dibincangkan dalam kalangan pembangun Java. Ekspresi Lambda boleh memudahkan kaedah penulisan pengaturcara Java yang membosankan, di samping meningkatkan kebolehbacaan dan kebolehselenggaraan program. Dalam artikel ini, kami akan mendalami ungkapan lambda dalam Java dan cara ia memberikan pengalaman pengaturcaraan yang lebih mudah dan intuitif dalam kod Java.

Apakah ungkapan Lambda?

Ungkapan Lambda ialah fungsi tanpa nama yang boleh dihantar sebagai parameter kepada kaedah atau dikembalikan daripada kaedah. Ungkapan Lambda dalam Java terutamanya diperkenalkan untuk melaksanakan pengaturcaraan berfungsi untuk memudahkan penulisan kelas dalaman tanpa nama. Di Jawa, penulisan kelas dalaman tanpa nama adalah verbose dan tidak intuitif dalam beberapa kes Pengenalan ungkapan lambda menjadikan penulisan kod lebih mudah dan lebih mudah dibaca.

Sintaks ungkapan Lambda

Ungkapan lambda dalam Java terutamanya terdiri daripada simbol anak panah, senarai parameter dan badan fungsi. Berikut ialah sintaks asas ungkapan lambda:

(parameter1, parameter2, ..., parameterN) -> {function body}

Sintaks di atas dijelaskan seperti berikut:

  • parameter1, parameter2, ..., parameterN: mewakili parameter ungkapan lambda.
  • ->: Simbol anak panah, gunakan simbol anak panah untuk memisahkan senarai parameter dan badan kaedah.
  • {function body}: Mewakili badan kaedah ungkapan lambda.

Kod sampel adalah seperti berikut:

// Contoh ungkapan Lambda
LambdaExample kelas awam {

public static void main(String[] args) {
    // 傳遞 lambda 表達式給 Thread 類
    Thread t1 = new Thread(() -> System.out.println("Lambda 表達式"));
    t1.start();
}

}

Dalam kod di atas, lambda expression() -> System.out.println("Lambda expression") ialah fungsi tanpa nama yang akan dihantar sebagai parameter kepada kelas Thread dalam Java.

Taip inferens untuk ungkapan Lambda

Dalam sesetengah kes, pengkompil Java boleh membuat kesimpulan secara automatik jenis ungkapan lambda melalui konteks. Contohnya, apabila anda menghantar ungkapan lambda sebagai parameter kepada antara muka berfungsi, pengkompil secara automatik menyimpulkan jenis ungkapan lambda. Kod sampel adalah seperti berikut:

// Contoh inferens jenis ungkapan Lambda
kelas awam LambdaTypeInferenceExample {

public static void main(String[] args) {
    // 在 lambda 表達式作為參數(shù)時可以自動推斷類型
    List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
    numbers.forEach((Integer value) -> System.out.println(value));
}

}

Dalam kod di atas, ungkapan Lambda (Integer value) -> Jenis System.out.println(value) boleh disimpulkan secara automatik tanpa menyatakan jenisnya secara eksplisit.

Skop pembolehubah ungkapan Lambda

Tidak seperti kelas dalaman tanpa nama, ungkapan lambda boleh mengakses pembolehubah setempat bagi kaedah di mana ia terkandung. Pembolehubah tempatan ini dipanggil "pembolehubah bebas" bagi ungkapan lambda. Dalam ungkapan lambda, pembolehubah bebas boleh diakses, tetapi pembolehubah bebas mestilah secara tersirat muktamad atau de facto muktamad. Berikut ialah contoh kod:

// Contoh pembolehubah bebas ungkapan Lambda
kelas awam LambdaFreeVariableExample {

public static void main(String[] args) {
    String message = "Hello";
    Runnable runnable = () -> {
        System.out.println(message);
    };
    runnable.run();
}

}

Dalam kod di atas, ungkapan lambda ( ) -> System.out.println(message) mengakses mesej pembolehubah bebas kerana pembolehubah mesej secara tersirat adalah muktamad.

Lambda Expressions and Stream API

Java 8 turut memperkenalkan Stream API baharu yang berkait rapat dengan ekspresi lambda. Stream API menyediakan cara untuk mengendalikan koleksi, membolehkan pembangun memproses data pengumpulan dengan lebih mudah. Banyak kaedah dalam API Strim menerima ungkapan lambda sebagai parameter. Berikut ialah contoh kod:

// Contoh API Strim
StreamExample kelas awam {

public static void main(String[] args) {
    List<String> list = Arrays.asList("Java", "Spring", "Hibernate", "Struts");
    long count = list.stream()
                    .filter(s -> s.startsWith("S"))
                    .count();
    System.out.println(count);
}

}

Dalam kod di atas, ungkapan lambda -> startsWith("S") dihantar ke Stream API sebagai parameter penapis kaedah penapis(), yang digunakan untuk menapis rentetan bermula dengan S.

Ringkasan

Ekspresi lambda dalam Java ialah ciri yang sangat penting, yang menyediakan pengaturcara Java kaedah pengekodan yang ringkas, cekap, mudah dibaca dan mudah diselenggara. Bukan itu sahaja, ungkapan lambda juga berkait rapat dengan ciri baharu lain seperti Stream API, menyediakan cara yang lebih mudah dan cekap untuk pembangunan Java. Jika anda seorang pembangun Java, anda mesti menguasai dan menggunakan ekspresi lambda secara aktif, yang akan membawa bantuan besar kepada kerja pembangunan anda.

Atas ialah kandungan terperinci ungkapan lambda di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk melangkah ke peta di Java? Bagaimana untuk melangkah ke peta di Java? Jul 13, 2025 am 02:54 AM

Terdapat tiga kaedah umum untuk melintasi Peta di Java: 1. Gunakan entriSet untuk mendapatkan kunci dan nilai pada masa yang sama, yang sesuai untuk kebanyakan senario; 2. Gunakan kekunci atau nilai untuk melintasi kekunci atau nilai masing -masing; 3. Gunakan Foreach Java8 untuk memudahkan struktur kod. EntrySet mengembalikan set set yang mengandungi semua pasangan nilai utama, dan setiap gelung mendapat objek peta.Entry, sesuai untuk akses kerap ke kunci dan nilai; Jika hanya kekunci atau nilai yang diperlukan, anda boleh memanggil kekunci () atau nilai () masing -masing, atau anda boleh mendapatkan nilai melalui map.get (kunci) apabila melintasi kunci; Java 8 boleh menggunakan foreach ((kunci, nilai)-& gt

Pembanding vs setanding di java Pembanding vs setanding di java Jul 13, 2025 am 02:31 AM

Di Java, setanding digunakan untuk menentukan peraturan penyortiran lalai secara dalaman, dan komparator digunakan untuk menentukan pelbagai logik penyortiran secara luaran. 1.Sampar adalah antara muka yang dilaksanakan oleh kelas itu sendiri. Ia mentakrifkan susunan semula jadi dengan menulis semula kaedah CompareTo (). Ia sesuai untuk kelas dengan kaedah penyortiran tetap dan paling biasa digunakan, seperti rentetan atau integer. 2. Sempadan adalah antara muka fungsional yang ditakrifkan secara luaran, dilaksanakan melalui kaedah membandingkan (), sesuai untuk situasi di mana kaedah penyortiran berganda diperlukan untuk kelas yang sama, kod sumber kelas tidak dapat diubah suai, atau logik penyortiran sering diubah. Perbezaan antara keduanya adalah setanding yang hanya dapat menentukan logik penyortiran dan perlu mengubah suai kelas itu sendiri, sementara perbandingan

Bagaimana Mengatasi Isu Pengekodan Watak di Java? Bagaimana Mengatasi Isu Pengekodan Watak di Java? Jul 13, 2025 am 02:46 AM

Untuk menangani masalah pengekodan watak di Java, kunci adalah dengan jelas menentukan pengekodan yang digunakan pada setiap langkah. 1. Sentiasa tentukan pengekodan apabila membaca dan menulis teks, gunakan InputStreamReader dan OutputStreamWriter dan lulus dalam set aksara yang jelas untuk mengelakkan bergantung pada pengekodan lalai sistem. 2. Pastikan kedua-dua hujungnya konsisten apabila memproses rentetan pada sempadan rangkaian, tetapkan tajuk jenis kandungan yang betul dan secara jelas menentukan pengekodan dengan perpustakaan. 3. Gunakan string.getBytes () dan newstring (byte []) dengan berhati -hati, dan sentiasa secara manual menentukan standardCharsets.utf_8 untuk mengelakkan rasuah data yang disebabkan oleh perbezaan platform. Pendek kata, oleh

Menggunakan std :: chrono di c Menggunakan std :: chrono di c Jul 15, 2025 am 01:30 AM

STD :: Chrono digunakan dalam C untuk memproses masa, termasuk mendapatkan masa semasa, mengukur masa pelaksanaan, titik masa operasi dan tempoh, dan masa analisis pemformatan. 1. Gunakan std :: chrono :: system_clock :: sekarang () untuk mendapatkan masa semasa, yang boleh ditukar menjadi rentetan yang boleh dibaca, tetapi jam sistem mungkin tidak membosankan; 2. Gunakan std :: chrono :: steady_clock untuk mengukur masa pelaksanaan untuk memastikan monoton, dan mengubahnya menjadi milisaat, saat dan unit lain melalui duration_cast; 3. Titik masa (time_point) dan tempoh (tempoh) boleh saling beroperasi, tetapi perhatian harus dibayar kepada keserasian unit dan zaman jam (Epoch)

Bagaimanakah hashmap berfungsi secara dalaman di Java? Bagaimanakah hashmap berfungsi secara dalaman di Java? Jul 15, 2025 am 03:10 AM

HashMap melaksanakan penyimpanan pasangan nilai utama melalui jadual hash di Java, dan terasnya terletak di lokasi data yang cepat. 1. Mula -mula gunakan kaedah hashcode () kunci untuk menghasilkan nilai hash dan mengubahnya menjadi indeks array melalui operasi bit; 2 Objek yang berbeza boleh menghasilkan nilai hash yang sama, mengakibatkan konflik. Pada masa ini, nod dipasang dalam bentuk senarai yang dipautkan. Selepas JDK8, senarai yang dipautkan terlalu panjang (panjang lalai 8) dan ia akan ditukar kepada pokok merah dan hitam untuk meningkatkan kecekapan; 3. Apabila menggunakan kelas tersuai sebagai kunci, sama () dan kaedah hashcode () mesti ditulis semula; 4. HashMap secara dinamik mengembangkan kapasiti. Apabila bilangan elemen melebihi kapasiti dan multiplies oleh faktor beban (lalai 0.75), mengembangkan dan mengembalikan; 5. hashmap tidak selamat benang, dan concu harus digunakan dalam multithreaded

Jenis Data JavaScript: Rujukan primitif vs Jenis Data JavaScript: Rujukan primitif vs Jul 13, 2025 am 02:43 AM

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

Apakah kata kunci 'statik' di Java? Apakah kata kunci 'statik' di Java? Jul 13, 2025 am 02:51 AM

Injava, thestatickeywordmeansamemberbelongstotheclassitself, nottoinstances.staticvariablesaresharesharedacrossallinstanceAndaccessedWithoutobjectCreation, consuryforglobaltrackingorconstants.staticmethodsoperateoperateTheclasslevel, tidak bolehaccessnonon-staccessnonon-stabil, tidak bolehaccessnonon-staccesslevel, tidak bolehaccessnonon-staccesslevel, tidak bolehaccessnononononononon-staccesslevel, tidak bolehaccessnononononononon-staccesslevel, tidak bolehaccessnononononononononon-staccesslevel, tidak dapat

Apa itu reentrantlock di Java? Apa itu reentrantlock di Java? Jul 13, 2025 am 02:14 AM

ReentrantLock menyediakan kawalan thread yang lebih fleksibel di Java daripada disegerakkan. 1. Ia menyokong kunci pengambilalihan yang tidak menyekat (trylock ()), pengambilalihan kunci dengan masa tamat (trylock (longtimeout, timeunitunit)) dan kunci tunggu yang boleh diganggu; 2. Membolehkan kunci yang adil untuk mengelakkan kelaparan benang; 3. Menyokong pelbagai pemboleh ubah keadaan untuk mencapai mekanisme tunggu/pemberitahuan yang lebih halus; 4. Perlu untuk melepaskan kunci secara manual, buka kunci () mesti dipanggil akhirnya blok untuk mengelakkan kebocoran sumber; 5. Ia sesuai untuk senario yang memerlukan kawalan penyegerakan lanjutan, seperti alat penyegerakan tersuai atau struktur serentak yang kompleks, tetapi synchro masih disyorkan untuk keperluan pengecualian bersama.

See all articles