Rumah  >  Artikel  >  Java  >  API Strim dalam Java 8: Cara mengalih keluar elemen pendua daripada koleksi menggunakan kaedah distinct().

API Strim dalam Java 8: Cara mengalih keluar elemen pendua daripada koleksi menggunakan kaedah distinct().

PHPz
PHPzasal
2023-07-29 16:04:512279semak imbas

API Strim dalam Java 8: Cara menggunakan kaedah distinct() untuk mengalih keluar elemen pendua daripada koleksi

Dalam Java 8, Stream API diperkenalkan, yang menyediakan kaedah pemprosesan data baharu yang boleh menjadi pengumpulan proses yang lebih ringkas dan cekap data. Satu operasi biasa ialah mengalih keluar elemen pendua daripada koleksi. Stream API dalam Java 8 menyediakan kaedah yang berbeza() untuk melaksanakan fungsi ini dengan mudah.

Pertama, kita perlu memahami penggunaan asas API Strim. Stream ialah jenis data baharu dalam Java 8, yang mewakili satu siri elemen dan boleh melakukan pelbagai operasi. Kita boleh mendapatkan objek Stream dengan memanggil kaedah stream() koleksi, kemudian melakukan pelbagai operasi pada objek Stream, dan akhirnya mengembalikan hasilnya sebagai objek Stream baharu atau bentuk data lain. API Strim menyediakan kami dengan satu siri kaedah untuk menapis, memetakan, menyusun, mengagregat dan operasi lain.

Sangat mudah untuk menggunakan kaedah distinct() untuk mengalih keluar elemen pendua daripada koleksi. Kami hanya perlu menukar koleksi menjadi objek Stream dan kemudian memanggil kaedah distinct(). Kaedah distinct() mengembalikan objek Stream baharu, yang mengandungi elemen pendua dalam objek Stream asal.

Berikut ialah contoh kod yang menunjukkan cara menggunakan kaedah distinct() untuk mengalih keluar elemen pendua daripada koleksi:

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class DistinctExample {
    public static void main(String[] args) {

        List<Integer> numbers = new ArrayList<>();
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);
        numbers.add(1);
        numbers.add(2);
        numbers.add(3);

        System.out.println("原始集合:" + numbers);

        List<Integer> distinctNumbers = numbers.stream()
                                               .distinct()
                                               .collect(Collectors.toList());

        System.out.println("去重后的集合:" + distinctNumbers);
    }
}

Dalam contoh di atas, kami mencipta koleksi Senarai yang mengandungi elemen pendua. Kemudian, kami menukarnya menjadi objek Stream dengan memanggil kaedah stream() pengumpulan nombor. Seterusnya, kami memanggil kaedah distinct() untuk mengalih keluar elemen pendua, dan menukar hasilnya kepada koleksi Senarai baharu melalui collect(Collectors.toList()).

Jalankan kod di atas, kita boleh mendapatkan output berikut:

Set asal: [1, 2, 3, 1, 2, 3]
Set pendua: [1, 2, 3]

Anda boleh melihat Kepada, gunakan kaedah distinct() untuk berjaya mengalih keluar elemen pendua daripada koleksi.

Perlu diambil perhatian bahawa kaedah distinct() akan mengalih keluar pendua berdasarkan kaedah equals() bagi elemen. Jika elemen dalam koleksi adalah objek tersuai, maka kita perlu memastikan objek tersebut melaksanakan kaedah equals() dengan betul.

Selain itu, kaedah distinct() juga boleh digunakan untuk menyahduplikasi objek. Cuma laksanakan kaedah equals() dengan betul dalam kelas objek.

Ringkasnya, Stream API dalam Java 8 menyediakan cara yang ringkas dan cekap untuk mengalih keluar elemen pendua daripada koleksi. Kita boleh melaksanakan fungsi ini dengan mudah dengan memanggil kaedah distinct(). Menggunakan API Strim boleh mengurangkan kod yang membosankan dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Jika anda belum mencuba API Strim dalam Java 8, sekarang adalah masa untuk mempelajari dan mengaplikasikannya!

Atas ialah kandungan terperinci API Strim dalam Java 8: Cara mengalih keluar elemen pendua daripada koleksi menggunakan kaedah distinct().. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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