java - 如何从 Hashmap Java 计算总数

标签 java count hashmap

我有这个当前输出:

First clusters: [[1, 0, 0, 0, 0], [1, 1, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 1], [0, 0, 0, 1, 1]]  

0 : 4, Probability: 0.8 , logVal: -0.2575424759098898
1 : 1, Probability: 0.2 , logVal: -0.46438561897747244

0 : 3, Probability: 0.6 , logVal: -0.44217935649972373
1 : 2, Probability: 0.4 , logVal: -0.5287712379549449

0 : 5, Probability: 1.0 , logVal: 0.0

0 : 4, Probability: 0.8 , logVal: -0.2575424759098898
1 : 1, Probability: 0.2 , logVal: -0.46438561897747244

0 : 3, Probability: 0.6 , logVal: -0.44217935649972373
1 : 2, Probability: 0.4 , logVal: -0.5287712379549449

然后对于每个 logVal 我想对它们进行总计,例如:
第一个数据:

0 : 4, Probability: 0.8 , logVal: -0.2575424759098898  
1 : 1, Probability: 0.2 , logVal: -0.46438561897747244  

total[0] = (-0.2575424759098898) + (-0.46438561897747244)

接下来,对于第二个数据:

0 : 3, Probability: 0.6 , logVal: -0.44217935649972373  
1 : 2, Probability: 0.4 , logVal: -0.5287712379549449

total[1] = (-0.44217935649972373) + (-0.5287712379549449)

依此类推,直到最后一个数据。但我不知道如何获取每个数据的索引,以便每个数据 logVal 可以使用 HashMap 汇总在一起。

这是我到目前为止的代码:

public static void printCount(HashMap<String, Integer> countMap, int length) {
    double logVal = 0.0, entropy = 0.0, probability = 0.0;

    Set<String> keySet = countMap.keySet();

    for (String bit : keySet) {
        //System.out.println(bit + " : " + countMap.get(bit));

        probability = (double)countMap.get(bit)/length;

        logVal = (probability*(Math.log(probability)/Math.log(2)));

        System.out.println(bit + " : " + countMap.get(bit) + ", Probability: " + probability + " , logVal: " + logVal);

        total = logVal + logVal;

        System.out.println("Total = " + total);

    }

    System.out.println();

}

最佳答案

更改:

total = logVal + logVal;
System.out.println("Total = " + total);

String totalString = "(" + logVal + ") + (" + logVal ")";
System.out.println("Total = " + totalString);

如果您需要存储它(您编写了total[0] = ...,只需使用String[]总计

关于java - 如何从 Hashmap Java 计算总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38456367/

相关文章:

JavaFX:如何刷新表格?

python - 如何过滤掉Python中低于特定频率的二进制类列?

java - 将 Java Map 的条目打印为表格的有效方法?

java - 尽管我认为其设置正确,但我的 super 功能无法正常工作

java - @事务回滚在 Spring Boot 应用程序中不起作用?

list - 在 Terraform 中迭代列表或元素集时出现问题

java - 如何使用字符串替换的反向引用作为 Java 中 HashMap 的键?

java - 在 Java 中使用 HashMap 创建表

java - 在没有接口(interface)调用或反射调用的情况下使用类加载器创建的对象?

Javascript:计算div中的可见字符