java - 如何显示数组中数字的出现次数?

标签 java arrays collections frequency

您好,我想显示 int[] 数组中数字的出现次数。我发现很多人试图问类似的问题,但他们的数组是字符串。这是我的工作从 10-25 中选择 10 个随机数并打印 100 次,显示数字的出现次数。例如:

12 15 16 17 20 14 24 21 22 15 10 12 16 24 23 14 23 12 11 10

10 的频率是:2 11的频率是:1 12的频率是:3 等等

public void pickRandomNo(int[] a) {
        printHeader();
        Random randomGenerator = new Random();
        for (int row = 0; row < 9; row++) {
            for (int i = 0; i < 10; i++) {
            array[i] = 10 + randomGenerator.nextInt((25 - 10) + 1);
            System.out.print(array[i] + " ");
        } System.out.println("");
      }      
    }

 public void displayOccurences() {
        ArrayList arrlist = new ArrayList();       
        arrlist.add(array);
        int freq = Collections.frequency(arrlist, 10);
        System.out.println("Frequency of 10 is: " + freq);      
    }

最佳答案

那么,对于您的 displayOccurences 方法,您可以这样做:

int freq = Collections.frequency(Arrays.asList(array), 10);

或者您可以采用老式的方式进行迭代:

int freq = 0;
for(final int v : array)
    if(v == 10)
        freq++;

或者如果您使用的是 Java 8,您可以尝试这样的操作:

int freq = Arrays.asList(array).stream().filter(i -> i.equals(10) || i == 10).count();

关于java - 如何显示数组中数字的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18501753/

相关文章:

JavaScript for 数组的循环语法

java - 当clear()方法调用抛出UnsupportedOperationException时如何清除 map 的内容?

c# - c#/.net x.x 是否有双向链表的实现(可以向后迭代)?

java - 如何通过java中的第二个参数对列表进行排序?

java - 两个数组之间的差异

java.lang.IllegalArgumentException : setAttribute: Non-serializable attribute with name

python - 在 Python 中减去 numpy 数组时不需要的舍入

java - 在android中如何处理Runnable Handler类

java - protected 字段与 protected 方法与操作处理程序的实现接口(interface)

php - 将两个输入数组组合成一个数组以使用PHP输入数据库