Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Mengira Kejadian Rentetan dalam Senarai Menggunakan Aliran Java?

Bagaimanakah Saya Boleh Mengira Kejadian Rentetan dalam Senarai Menggunakan Aliran Java?

Mary-Kate Olsen
Lepaskan: 2024-11-11 06:39:02
asal
723 orang telah melayarinya

How Can I Count String Occurrences in a List Using Java Streams?

Mengira Kejadian dengan groupBy

Kaedah groupBy dalam aliran Java membolehkan kami mengumpul elemen ke dalam kumpulan berdasarkan kunci yang ditentukan. Dalam kes ini, kami ingin mengumpulkan rentetan mengikut nilainya dan mengira kejadian dalam setiap kumpulan.

Untuk mencapai ini, kami boleh menggunakan lebihan groupBy yang memerlukan Pemungut kedua. Kami akan menyediakan Collectors.counting() sebagai Collector ini, yang akan mengira elemen dalam setiap kumpulan.

Begini cara untuk melaksanakan ini menggunakan strim:

import java.util.*;
import java.util.stream.*;

class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("Hello");
        list.add("Hello");
        list.add("World");

        Map<String, Long> counted = list.stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        System.out.println(counted);
    }
}
Salin selepas log masuk

Ini akan menghasilkan yang berikut output:

{Hello=2, World=1}
Salin selepas log masuk

Peta mengandungi dua entri, dengan "Hello" dipetakan kepada 2 dan "Dunia" dipetakan kepada 1. Ini mewakili kiraan kejadian bagi setiap perkataan dalam senarai input.

Perhatikan bahawa kami juga boleh menggunakan groupingByConcurrent untuk meningkatkan kecekapan, terutamanya dalam senario di mana pelaksanaan serentak adalah selamat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengira Kejadian Rentetan dalam Senarai Menggunakan Aliran Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan