Apabila bekerja dengan senarai Java, cekap menentukan sama ada senarai mengandungi objek dengan medan yang sepadan dengan tertentu nilai adalah penting untuk prestasi. Walaupun melelaran senarai dengan gelung mudah ialah pendekatan yang mudah, ia boleh menjadi tidak cekap, terutamanya apabila berurusan dengan gelung bersarang.
Strim yang diperkenalkan Java 8, memberikan aliran yang kuat dan ringkas cara mengendalikan manipulasi data. Untuk senario kami, strim menawarkan alternatif yang lebih cekap:
Menggunakan penapis dan findFirst:
<code class="java">public boolean containsName(List<MyObject> list, final String name) { return list.stream().filter(o -> o.getName().equals(name)).findFirst().isPresent(); }</code>
Pendekatan ini menggunakan kaedah penapis untuk menapis senarai berdasarkan namakan kriteria dan kemudian gunakan findFirst untuk menentukan sama ada mana-mana elemen memenuhi syarat.
Menggunakan penapis dan anyMatch:
<code class="java">public boolean containsName(List<MyObject> list, final String name) { return list.stream().anyMatch(o -> name.equals(o.getName())); }</code>
Kaedah anyMatch ialah alternatif kepada findFirst itu mengembalikan benar jika mana-mana elemen dalam strim memenuhi predikat.
Kesimpulan:
Strim menyediakan cara yang ringkas dan cekap untuk menyemak objek dengan nilai medan tertentu dalam senarai . Kaedah ini memanfaatkan keupayaan pengaturcaraan fungsi Java 8 untuk mengurangkan pembekuan kod dan meningkatkan prestasi, terutamanya apabila berurusan dengan gelung bersarang.
Atas ialah kandungan terperinci Bagaimana untuk Memeriksa dengan Cekap sama ada Senarai Java Mengandungi Objek dengan Nilai Medan Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!