Mengekstrak nilai unik daripada ArrayList menjadi lebih mudah dan pantas dengan memanfaatkan ciri pengaturcaraan berfungsi Java 8 seperti Stream API, strim dan ekspresi lambda. Menggunakan ciri ini, anda boleh mengekstrak elemen berbeza tanpa lelaran yang membosankan atau pemeriksaan manual menjadikan tugas ini lebih mudah dengan membenarkan anda menulis kod yang ringkas dan boleh dibaca. Sama ada berurusan dengan set data yang besar atau hanya menghapuskan pendua, Java 8 menyediakan penyelesaian yang berkuasa dan elegan untuk mendapatkan nilai unik daripada ArrayList
Kelas ArrayList Java melaksanakan antara muka Senarai, menyediakan fungsi yang serupa dengan tatasusunan dinamik untuk menyimpan dan mengendalikan koleksi elemen dalam tatasusunan boleh laras. Apabila elemen ditambah atau dialih keluar daripada tatasusunan ArrayList, saiznya dilaraskan secara automatik, memberikan fleksibiliti dan kemudahan.
Terdapat pelbagai kaedah untuk mengakses, mengubah suai, menambah dan memadam elemen dalam ArrayList. Elemen boleh diakses menggunakan kaedah get() dan diubah suai menggunakan kaedah set() sebagai tambahan, elemen boleh ditambah pada kedudukan tertentu dalam senarai menggunakan kaedah add() dan elemen boleh dialih keluar pada kedudukan tertentu menggunakan; kaedah remove() atau pada penghujung senarai
ArrayList<String> names = new ArrayList<>();
Java 8 menyediakan beberapa kaedah untuk mencari nilai unik dalam arrayList. Di bawah adalah dua strategi yang sering digunakan.
Gunakan Strim dan tersendiri()
Gunakan set cincang
Kedua-dua kaedah menyediakan cara yang cekap untuk mengekstrak nilai unik daripada ArrayList menggunakan ciri Java 8, jadi pilih sahaja kaedah yang paling sesuai dengan keperluan dan gaya pengekodan anda.
Mula-mula, tukarkan ArrayList kepada strim dengan memanggil kaedah stream()nya; kemudian gunakan unique() pada strim itu untuk menapis nilai pendua supaya hanya item unik yang kekal. Untuk mengekstrak nilai unik daripada strim, kaedah collect() dengan pengumpul yang sesuai membenarkan mendapatkannya.
Untuk penggunaan optimum bagi distinct(), pastikan elemen dalam ArrayList telah mengatasi kaedah equals() dengan betul untuk memastikan keunikannya dan mentakrifkan diri mereka sebagai elemen berbeza dengan betul
Buat ArrayList dan isi dengan elemen.
Tukar ArrayList kepada strim menggunakan kaedah stream().
Gunakan kaedah unik() pada Strim untuk menghapuskan nilai pendua dan hanya menyimpan nilai unik.
Tukar strim kembali kepada ArrayList atau koleksi lain yang sesuai menggunakan kaedah collect() dan collector yang sesuai
ArrayList baharu ini hanya akan mengandungi nilai unik daripada sumbernya ArrayList.
import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class UniqueValuesExample { public static void main(String[] args) { List<String> fruits = new ArrayList<>(); fruits.add("Apple"); fruits.add("Orange"); fruits.add("Banana"); fruits.add("Orange"); fruits.add("Mango"); fruits.add("Apple"); List<String> uniqueFruits = fruits.stream() .distinct() .collect(Collectors.toList()); System.out.println("Unique fruits: " + uniqueFruits); } }
Unique fruits: [Apple, Orange, Banana, Mango]
Lancarkan editor. Pasang objek HashSet ke dalam koleksi yang memegang elemen unik, kemudian ulangi setiap elemen dalam ArrayList satu demi satu untuk menambahkannya pada HashSet, dengan mencatat sebarang nilai pendua yang berlaku. Oleh kerana HashSet tidak membenarkan nilai pendua wujud, sebarang data pendua dalam ArrayList akan dihapuskan secara automatik oleh HashSet
Selepas melelaran ArrayList, mencipta HashSet yang mengandungi hanya nilai unik daripada senarai asal membolehkan anda mengakses terus nilai khusus tersebut atau menukar kembali kepada ArrayList untuk akses selanjutnya.
Kaedah ini mengambil kesempatan daripada kekangan keunikan yang wujud dalam HashSet untuk mendapatkan semula nilai unik daripada ArrayList dengan cepat, menyediakan penyelesaian yang mudah dalam Java 8.
Buat ArrayList dan isi dengan elemen.
Buat objek HashSet.
Lintas setiap elemen dalam ArrayList
Tambah setiap elemen pada HashSet menggunakan kaedah add().
HashSet akan menghapuskan nilai pendua secara automatik kerana ia hanya menyimpan nilai unik.
Selepas melelaran pada ArrayList, HashSet hanya akan mengandungi nilai unik tersebut daripada senarai asal.
Anda boleh menukar HashSet kembali kepada ArrayList jika perlu, atau menggunakannya terus sebagai alat akses untuk mencari nilai unik di dalamnya
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class UniqueValuesExample { public static void main(String[] args) { List<String> animals = new ArrayList<>(); animals.add("Lion"); animals.add("Elephant"); animals.add("Tiger"); animals.add("Elephant"); animals.add("Giraffe"); animals.add("Lion"); Set<String> uniqueAnimals = new HashSet<>(animals); System.out.println("Unique animals: " + uniqueAnimals); } }
Unique animals: [Elephant, Lion, Tiger, Giraffe]
Dalam tutorial ini, kami melihat bagaimana Java 8 menyediakan penyelesaian yang cekap dan elegan untuk mengekstrak nilai unik daripada ArrayList. Dengan memanfaatkan kaedah unik() Stream API dan menghapuskan pendua dengan pantas daripada ArrayList untuk mendapatkan item unik baharu, dan keupayaan pengaturcaraan berfungsi untuk kod ringkas dan boleh dibaca, pembangun boleh melakukannya dengan mudah, cepat dan cekap tugasan ini.
HashSet juga boleh menyediakan satu lagi cara yang cekap untuk mencari nilai unik dengan memulakannya dengan ArrayList mana-mana elemen pendua dihapuskan secara automatik, hanya meninggalkan entri unik di dalamnya.
Fleksibiliti dan kemudahan Java 8 dalam mengendalikan tugas mengekstrak nilai unik daripada ArrayList jelas terbukti daripada kaedah ini yang kedua-duanya memanfaatkan pelaksanaan Stream API atau HashSet untuk produktiviti maksimum, membantu pembangun mencapai matlamat mereka dengan mudah;
Atas ialah kandungan terperinci Bagaimana untuk mendapatkan nilai unik daripada ArrayList menggunakan Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!