java - 如何获得给定数组的频率?

标签 java

我需要通过用“* ”替换这些数字来找出这些数字在数组中出现的次数,但它给出了太多的星星。 有谁有建议可以帮助我解决这个问题。 这就是我所拥有的

public class Frequency {
    public static void main(String[] args) {
        int[] rateFrequency = { 0, 1, 2, 2, 2, 3, 3 };

        for (int i = 0; i <= 4; i++) {
            System.out.println(i + ":");

            for (int j = 0; j <= rateFrequency.length; j++) {
                System.out.print(" * ");
            }

        }
    }
}

最佳答案

也许你可以使用 Collections.Frequency() 方法:

Integer[] rateFrequency = { 0, 1, 2, 2, 2, 3, 3 }; 
List<Integer> list = Arrays.asList(rateFrequency);

for(int i=0; i<=4; i++){
    System.out.println(i+":" + Collections.frequency(list,i));
}

输出:

0:1
1:1
2:3
3:2
4:0

您可以通过创建另一个循环来修改它以打印“*”。

关于java - 如何获得给定数组的频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50028857/

相关文章:

java - Internet Explorer 中的 PDF 导出打印

java - IntelliJ IDEA 中公共(public) setter/mutator 方法的 "Access can be private"警告消息

java - spring 错误 :org. springframework.web.context.ContextLoader - 上下文初始化失败

java - Retrofit 2 中的响应字符串被截断

java - Java 进程中的 Sudo

java - 我如何从我的 JMapViewer 世界地图中获取鼠标点击位置

java - 如何使用java检查xlsx中的行是否为空

java - 在java中从命令行输入字符串到int

java - 通过 UAC 提升 ProcessBuilder 进程?

JAVA:如何让这个命令监听按钮按下?