Rumah  >  Artikel  >  Java  >  API Strim dalam Java 8: Cara menggunakan kelas Pengumpul untuk pengumpulan dan statistik koleksi

API Strim dalam Java 8: Cara menggunakan kelas Pengumpul untuk pengumpulan dan statistik koleksi

王林
王林asal
2023-07-31 18:21:151103semak imbas

API Strim dalam Java 8: Cara menggunakan kelas Pengumpul untuk mengumpulkan dan statistik koleksi

Pengenalan:
Di Java 8, API Aliran diperkenalkan, iaitu konsep pengaturcaraan berfungsi yang membolehkan kami menggunakannya dengan lebih cekap Mengendalikan data pengumpulan dengan cara yang ringkas dan elegan. Stream API menyediakan fungsi yang kaya, salah satunya ialah mengumpulkan dan mengira koleksi. Artikel ini akan memperkenalkan cara menggunakan kelas Pengumpul untuk mencapai fungsi ini.

  1. Kumpulan koleksi
    Dalam pembangunan sebenar, kita selalunya perlu mengumpulkan koleksi mengikut atribut tertentu untuk memudahkan pemprosesan seterusnya. Dalam Java 8, anda boleh menggunakan kaedah groupBy() kelas Pengumpul untuk melaksanakan pengumpulan koleksi.

Kod sampel adalah seperti berikut:

class Person {
    private String name;
    private String gender;
    private int age;

    public Person(String name, String gender, int age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public int getAge() {
        return age;
    }
}

List<Person> persons = Arrays.asList(
        new Person("John", "male", 20),
        new Person("Jane", "female", 25),
        new Person("Tom", "male", 30),
        new Person("Emily", "female", 35)
);

Map<String, List<Person>> groupedByGender = persons.stream()
        .collect(Collectors.groupingBy(Person::getGender));

System.out.println(groupedByGender);

Hasil output ialah:

{female=[Person{name='Jane', gender='female', age=25}, Person{name='Emily', gender='female', age=35}], male=[Person{name='John', gender='male', age=20}, Person{name='Tom', gender='male', age=30}]}

Dalam kod di atas, kami mula-mula mencipta kelas Orang sebagai contoh, yang mengandungi atribut nama, jantina dan umur. Kemudian koleksi Senarai objek Orang dicipta. Seterusnya, tukar koleksi kepada aliran melalui kaedah stream(). Akhir sekali, gunakan kaedah groupBy() kelas Pengumpul untuk mengumpulkan mengikut atribut jantina objek Orang, dan hasilnya disimpan dalam koleksi Peta.

  1. Statistik set
    Dalam amalan, kita mungkin perlu mengira elemen dalam set, seperti mengira bilangan elemen, menjumlahkan, purata, dsb. Stream API Java 8 menyediakan satu siri kaedah statistik, yang boleh kita laksanakan menggunakan summingInt(), averagingInt(), counting() dan kaedah lain dalam kelas Collectors.

Kod sampel adalah seperti berikut:

List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);

int sum = numbers.stream().collect(Collectors.summingInt(Integer::intValue));
double average = numbers.stream().collect(Collectors.averagingInt(Integer::intValue));
long count = numbers.stream().collect(Collectors.counting());

System.out.println("Sum: " + sum);
System.out.println("Average: " + average);
System.out.println("Count: " + count);

Hasil output ialah:

Sum: 15
Average: 3.0
Count: 5

Dalam kod di atas, kami mula-mula membuat Senarai jenis Integer, yang mengandungi satu siri nombor. Seterusnya, kaedah summingInt() digunakan untuk mengira jumlah, kaedah averagingInt() digunakan untuk mengira purata, dan kaedah mengira() digunakan untuk mengira nombor. Akhirnya, keputusan diperoleh melalui kaedah collect() kelas Collectors.

Ringkasan:
Dengan kelas Stream API dan Pengumpul di Java 8, kami boleh melaksanakan operasi pengumpulan dan statistik pada koleksi dengan cara yang lebih ringkas dan elegan. Ciri ini bukan sahaja meningkatkan kebolehbacaan kod, tetapi juga meningkatkan fleksibiliti program.

Di atas ialah pengenalan artikel ini kepada pengumpulan koleksi dan statistik kelas API Stream dan Pengumpul di Java 8. Saya harap ia akan membantu anda. Terima kasih!

Atas ialah kandungan terperinci API Strim dalam Java 8: Cara menggunakan kelas Pengumpul untuk pengumpulan dan statistik koleksi. 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