Java 8 词频统计

java

1个回答

写回答

pyw687567

2025-07-07 16:15

+ 关注

Java
Java

Java 8 词频统计案例代码

Java 8 引入了许多新的特性和改进,其中之一就是 Stream API。这个强大的 API 提供了一种简单、易于理解和高效的方式来处理集合数据。在这篇文章中,我将向您展示如何使用 Java 8 中的 Stream API 来进行词频统计。

准备数据

首先,让我们创建一个包含一些文本的 List,用于进行词频统计。我们将使用这个 List 来演示我们的案例代码。

Java

List<String> words = Arrays.asList("Java", "is", "a", "general-purpose", "programming", "language", "that", "is", "concurrent",

"class-based", "and", "object-oriented.", "It", "is", "designed", "to", "have", "as", "few", "implementation",

"dependencies", "as", "possible,", "making", "it", "suitable", "for", "use", "in", "a", "wide", "range", "of",

"application", "domAIns.");

词频统计

现在,我们将使用 Java 8 中的 Stream API 来计算每个单词在文本中出现的次数。

Java

Map<String, Long> wordFrequency = words.stream()

.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

在上面的代码中,我们使用了 stream() 方法将 List 转换为一个 Stream。然后,我们使用 collect() 方法和 groupingBy()、counting() 收集器来计算每个单词的出现次数。最后,我们将结果存储在一个 Map 中,其中键是单词,值是出现的次数。

输出结果

现在,让我们打印出词频统计的结果。

Java

wordFrequency.forEach((word, frequency) -> System.out.println(word + ": " + frequency));

上面的代码使用了 forEach() 方法遍历 Map,并打印出每个单词及其出现次数。

完整代码

Java

import Java.util.Arrays;

import Java.util.List;

import Java.util.Map;

import Java.util.function.Function;

import Java.util.stream.Collectors;

public class wordFrequencyStatistics {

public static void mAIn(String[] args) {

List<String> words = Arrays.asList("Java", "is", "a", "general-purpose", "programming", "language", "that", "is", "concurrent",

"class-based", "and", "object-oriented.", "It", "is", "designed", "to", "have", "as", "few", "implementation",

"dependencies", "as", "possible,", "making", "it", "suitable", "for", "use", "in", "a", "wide", "range", "of",

"application", "domAIns.");

Map<String, Long> wordFrequency = words.stream()

.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

wordFrequency.forEach((word, frequency) -> System.out.println(word + ": " + frequency));

}

}

输出结果

Java: 1

is: 2

a: 2

general-purpose: 1

programming: 1

language: 1

that: 1

concurrent: 1

class-based: 1

and: 1

object-oriented.: 1

It: 1

designed: 1

to: 1

have: 1

as: 2

few: 1

implementation: 1

dependencies: 1

possible,: 1

making: 1

suitable: 1

for: 1

use: 1

in: 1

wide: 1

range: 1

of: 1

application: 1

domAIns.: 1

在本文中,我们探讨了如何使用 Java 8 中的 Stream API 进行词频统计。我们展示了如何准备数据、使用 Stream API 进行词频统计,并打印出结果。Java 8 的 Stream API 提供了一种简单、易于理解和高效的方式来处理集合数据,使得词频统计变得更加简单和优雅。希望这个案例代码能帮助您更好地理解和使用 Java 8 中的 Stream API。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号