Java 如何显示文本中出现四次或四次以上的所有唯一单词的列表?

Java 如何显示文本中出现四次或四次以上的所有唯一单词的列表?,java,Java,到目前为止,我已经找到了如何显示所有单词的方法,以及显示每个单词在文本中出现次数的数字。但是,我不知道如何获得另一个列表,该列表显示仅出现4次或更多次的所有唯一单词。关于如何实现这一点,我有什么想法,因为我认为我已经完成了这里的难点,但我只想知道如何获得下一部分。对于Java 8,您可以使用流和按值过滤: System.out.println("List of unique word occurrences: " + countOcc.entrySet().stream() .filte

到目前为止,我已经找到了如何显示所有单词的方法,以及显示每个单词在文本中出现次数的数字。但是,我不知道如何获得另一个列表,该列表显示仅出现4次或更多次的所有唯一单词。关于如何实现这一点,我有什么想法,因为我认为我已经完成了这里的难点,但我只想知道如何获得下一部分。

对于Java 8,您可以使用流和按值过滤:

System.out.println("List of unique word occurrences: " +
    countOcc.entrySet().stream()
.filter(e -> e.getValue() >= 4)
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
或者,与其收集到其他地图,不如打印出来或收集到列表中:

    .map(e -> e.getKey())
.collect(Collectors.toList());

使用Java 8,您可以使用流和按值筛选:

System.out.println("List of unique word occurrences: " +
    countOcc.entrySet().stream()
.filter(e -> e.getValue() >= 4)
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
或者,与其收集到其他地图,不如打印出来或收集到列表中:

    .map(e -> e.getKey())
.collect(Collectors.toList());

假设您使用的是Java 8,您可以根据文本中出现的次数过滤
countOcc
映射中的条目,如下所示。最后,我打印了过滤后的结果

countOcc.entrySet().stream()
    .filter(entry->entry.getValue()>=4)
    .forEach(entry->System.out.println(entry.getKey()))

假设您使用的是Java 8,您可以根据文本中出现的次数过滤
countOcc
映射中的条目,如下所示。最后,我打印了过滤后的结果

countOcc.entrySet().stream()
    .filter(entry->entry.getValue()>=4)
    .forEach(entry->System.out.println(entry.getKey()))

对于(Map.Entry:countOcc.entrySet())和检查if条件下for循环内部的
Entry.getValue()>=4
也可以执行相同的操作。对于(Map.Entry条目:countOcc.entrySet())和检查if
Entry.getValue()也可以执行相同的操作>=4
在具有if条件的for循环内。@A.Adams:有其他方法可以实现这一点,但通常模式是相同的。您可以改为使用for loop over entrySet()并手动比较getValue()。但是复杂性仍然是一样的。@A.Adams:有其他方法可以实现这一点,但通常模式是相同的。您可以改为使用for loop over entrySet()并手动比较getValue()。但复杂性仍然是一样的。