gpt4 book ai didi

java - 计算多篇文章中的关键字出现次数

转载 作者:搜寻专家 更新时间:2023-11-01 02:20:27 24 4
gpt4 key购买 nike

我正在尝试计算已选择的不同文章中关键字的出现次数。我可以在 Java 7 中执行此操作,但在 Java 8 中却很吃力。

结构是这样的。

关键词类

public class Keyword {

private String word;
private int value;
}

文章类

public class Article {
private Set<Keyword> keywordsList;
private boolean selected;
}

我如何计算我拥有 A、B、C 等的次数。关键字

Map<Keyword,Integer> occurrenceMapping = new HashMap<>();

final Set<Article> articleSetFiltered = articleSet.stream()
.filter(a -> a.isSelected())
.collect(Collectors.toSet());

for(Article a : articleSetFiltered) {
for(Keyword k : a.getKeywordsList()) {
if(!occurrenceMapping.containsKey(k)) {
occurrenceMapping.put(k,1);
}
else{
final int occurrence = occurrenceMapping.get(k);
occurrenceMapping.put(k,occurrence+1);
}
}
}

我开始做这样的事情。仍在解决它,但不确定我是否朝着正确的方向前进:/如果有人可以指导我朝着正确的方向前进,那就太好了!

 Map<Keyword,Integer> occurenceMappingBis = articleSetFiltered = articleSet.stream()
.filter(a -> a.isSelected())
.forEach(
article -> article.getKeywordsList()
.stream().collect(Collectors.groupingBy(keyword -> keyword, Collectors.counting()))
);

最佳答案

类似这样的东西(我还没有编译它,但应该可以)。这假定 Keyword 覆盖 hashcode/equals

 articleSet.stream()
.filter(Article::isSelected)
.flatmap(ar -> ar.getKeywordsList().stream())
.collect(Collectors.groupingBy(
Function.identity(),
Collectors.counting()));

关于java - 计算多篇文章中的关键字出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46221193/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com