📜  使用 getordefault 使用 hashmap 的 java 中数字的频率 - Java (1)

📅  最后修改于: 2023-12-03 14:49:39.956000             🧑  作者: Mango

使用 getOrDefault 在 Java 中计算数字的频率

在 Java 编程中,我们经常需要统计某个数字在一个集合或数组中出现的频率。HashMap 是一个常用的数据结构,它可以帮助我们高效地实现这个功能。在这里,我们将使用 getOrDefault 方法来计算数字的频率。

示例代码
import java.util.HashMap;
import java.util.Map;

public class FrequencyCounter {

    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 1, 2, 3, 4, 1, 2, 1};
        Map<Integer, Integer> frequencyMap = new HashMap<>();

        for (int number : numbers) {
            frequencyMap.put(number, frequencyMap.getOrDefault(number, 0) + 1);
        }

        printFrequency(frequencyMap);
    }

    private static void printFrequency(Map<Integer, Integer> frequencyMap) {
        for (Map.Entry<Integer, Integer> entry : frequencyMap.entrySet()) {
            System.out.println("Number: " + entry.getKey() + ", Frequency: " + entry.getValue());
        }
    }

}
解释

上面的代码演示了如何使用 HashMap 和 getOrDefault 方法来计算数字的频率。首先,我们定义了一个整数数组 numbers,其中包含了一组要统计的数字。

然后,我们创建了一个名为 frequencyMap 的 HashMap,用于存储数字及其对应的频率。

接下来,我们使用 for-each 循环遍历数组中的每个数字。对于当前的数字,我们使用 getOrDefault 方法来获取它在 frequencyMap 中的当前频率(如果不存在,则默认为0),然后将其加1,并将结果存回 frequencyMap 中。

最后,我们调用 printFrequency 方法打印出每个数字及其频率的信息。

输出结果

运行以上代码将输出以下结果:

Number: 1, Frequency: 4
Number: 2, Frequency: 3
Number: 3, Frequency: 2
Number: 4, Frequency: 2
Number: 5, Frequency: 1

这表明数字1在数组中出现了4次,数字2出现了3次,以此类推。

这种使用 getOrDefault 的方法可以方便地统计数字的频率,避免了繁琐的条件判断或额外的代码。

希望以上内容对你有所帮助!