【发布时间】:2021-04-20 09:19:54
【问题描述】:
如何将我的地图转换为包含单词及其频率的 Word 类
List<Word>
或者我必须创建类似的
Map<String, List<Word>> wordFreq
为了简洁,我避免使用一些方法
public class Word implements Comparable<Word> {
private String content;
private int frequency;
}
class CONTAINER {
public static void main(String[] args) {
StringBuilder userWords = new StringBuilder();
userWords.append("some sequence of words");
Map<String, Long> wordFreq = Stream.of(userWords.toString().split(" ")).parallel()
.collect(Collectors.groupingBy(String::toString, Collectors.counting()));
List<Word> words = new ArrayList<>();
for (Map.Entry<String, Long> a : wordFreq.entrySet()) {
words.add(new Word(a.getKey(), Math.toIntExact(a.getValue())));
}
words.forEach(s -> System.out.println(s.getContent() + " : " + s.getFrequency()));
}
}
【问题讨论】:
标签: java collections java-8 java-stream