如何使用Java Stream查找共享密钥的所有值的平均值?

时势

我在尝试对Java中的地图值求平均值时遇到了很多麻烦。我的方法接收一个文本文件,并查看每个单词的平均长度(从某个字母开始)(不区分大小写,并遍历该文本文件中的所有单词。

例如,假设我有一个包含以下内容的文本文件:

"Apple arrow are very common Because bees behave Cant you come home"

我的方法当前返回:

{A=5, a=8, B=7, b=10, c=10, C=5, v=4, h=4, y=3}

因为它正在查看字母并找到单词的平均长度,但是仍然区分大小写。

它应该返回:

{A=5, a=8, B=7, b=10, c=10, C=5, v=4, h=4, y=3}

{a=4.3, b=5.5, c=5.0, v=4.0, h=4.0, y=3}

到目前为止,这就是我所拥有的。

public static Map<String, Integer> findAverageLength(String filename) {
    
    
     Map<String, Integer> wordcount = new TreeMap<>(
                String.CASE_INSENSITIVE_ORDER);;
        

        try 
        {
            Scanner in = new Scanner(new File(filename));
            List<String> wordList = new ArrayList<>();
            while (in.hasNext()) 
            {
                wordList.add(in.next());
            }
            
            wordcount = wordList.stream().collect(Collectors.toConcurrentMap(w->w.substring(0,1), w -> w.length(), Integer::sum));
            System.out.println(wordcount);
            
        }
        
        catch (IOException e)
        {
            System.out.println("File: " + filename + " not found");
        }
    
    
    return wordcount; 
}
MC皇帝

你快到了。

您可以尝试以下方法。

  • 我们将单词的第一个字符分组,转换为小写。这使我们可以收集到Map<Character, …>中,键是每个单词的第一个字母。然后,典型的地图条目将看起来像

    a = [ Apple, arrow, are ]
    
  • 然后,使用该averagingDouble方法计算每组单词长度的平均值然后,典型的地图条目将看起来像

    a = 4.33333333
    

这是代码:

// groupingBy and averagingDouble are static imports from
// java.util.stream.Collectors
Map<Character, Double> map = Arrays.stream(str.split(" "))
    .collect(groupingBy(word -> Character.toLowerCase(word.charAt(0)),
        averagingDouble(String::length)));

请注意,为简洁起见,我省略了诸如nullcheck,空字符串和Locales之类的其他内容。

另请注意,此代码在很大程度上响应了以下OlivierGrégoire和Holger的评论而得到了改进。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用类方法计算数组中所有值的平均值

来自分类Dev

如何按组查找非零值的平均值?

来自分类Dev

Linq如何在所有值等于null或0时求平均值?MVC

来自分类Dev

使用 pandas 滚动的数据帧所有值的真实平均值

来自分类Dev

如何根据组平均值填充DataFrame中所有缺失值(跨所有列)?

来自分类Dev

如何对数组内对象中具有相同键的所有值求和并求平均值

来自分类Dev

如何对数组内对象中具有相同键的所有值求和并求平均值

来自分类Dev

SQL-如何仅使用最后N行中的值查找列的平均值

来自分类Dev

如何使用Shell查找间隔中的平均值和最大值

来自分类Dev

numpy csr 矩阵“mean”函数是否对所有矩阵求平均值?如何删除某个值?

来自分类Dev

使用awk查找列的平均值

来自分类Dev

使用JS查找数组的平均值

来自分类Dev

使用mysql查找平均值

来自分类Dev

使用必须查找平均值

来自分类Dev

如何基于Julia中一列中的值查找数据框的行的平均值?

来自分类Dev

如何在不同的列中查找值,然后取平均值

来自分类Dev

查询以使用每个平均值的计数查找存储在mongodb中的平均值的平均值

来自分类Dev

SQL-如何查找带有LIMIT的SQL语句的平均值?

来自分类Dev

如何从具有公共变量的表中查找平均值

来自分类Dev

使用Python查找具有给定算术平均值的一对质数

来自分类Dev

如何获取Julia中数据帧所有列的算术平均值,最小值和最大值?

来自分类Dev

如何计算表中所有行的静态平均值以将单个行值与Oracle SQL中的值进行比较

来自分类Dev

如何删除百分号并使用r查找列中某些值的平均值?

来自分类Dev

使用Python查找分散数据集的平均值(或滚动平均值)

来自分类Dev

如何找到文本文件中所有数字的平均值

来自分类Dev

如何计算所有重复中每种处理的平均值

来自分类Dev

C#如何打印/显示数组中所有数字与平均值之间的“差”

来自分类Dev

如何计算所有掷骰子的总数和平均值?

来自分类Dev

如何从列表中获取所有数字的平均值

Related 相关文章

  1. 1

    如何使用类方法计算数组中所有值的平均值

  2. 2

    如何按组查找非零值的平均值?

  3. 3

    Linq如何在所有值等于null或0时求平均值?MVC

  4. 4

    使用 pandas 滚动的数据帧所有值的真实平均值

  5. 5

    如何根据组平均值填充DataFrame中所有缺失值(跨所有列)?

  6. 6

    如何对数组内对象中具有相同键的所有值求和并求平均值

  7. 7

    如何对数组内对象中具有相同键的所有值求和并求平均值

  8. 8

    SQL-如何仅使用最后N行中的值查找列的平均值

  9. 9

    如何使用Shell查找间隔中的平均值和最大值

  10. 10

    numpy csr 矩阵“mean”函数是否对所有矩阵求平均值?如何删除某个值?

  11. 11

    使用awk查找列的平均值

  12. 12

    使用JS查找数组的平均值

  13. 13

    使用mysql查找平均值

  14. 14

    使用必须查找平均值

  15. 15

    如何基于Julia中一列中的值查找数据框的行的平均值?

  16. 16

    如何在不同的列中查找值,然后取平均值

  17. 17

    查询以使用每个平均值的计数查找存储在mongodb中的平均值的平均值

  18. 18

    SQL-如何查找带有LIMIT的SQL语句的平均值?

  19. 19

    如何从具有公共变量的表中查找平均值

  20. 20

    使用Python查找具有给定算术平均值的一对质数

  21. 21

    如何获取Julia中数据帧所有列的算术平均值,最小值和最大值?

  22. 22

    如何计算表中所有行的静态平均值以将单个行值与Oracle SQL中的值进行比较

  23. 23

    如何删除百分号并使用r查找列中某些值的平均值?

  24. 24

    使用Python查找分散数据集的平均值(或滚动平均值)

  25. 25

    如何找到文本文件中所有数字的平均值

  26. 26

    如何计算所有重复中每种处理的平均值

  27. 27

    C#如何打印/显示数组中所有数字与平均值之间的“差”

  28. 28

    如何计算所有掷骰子的总数和平均值?

  29. 29

    如何从列表中获取所有数字的平均值

热门标签

归档