如何统计ArrayList中的重复元素?

新手上路,请多包涵

我需要分离并统计arraylist中有多少个值是相同的,并根据出现的次数打印出来。

我有一个名为 digits 的数组列表:

  [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]

我创建了一个方法来分隔每个值并将其保存到一个新数组中。

 public static ArrayList<Integer> myNumbers(int z) {

    ArrayList<Integer> digits = new ArrayList<Integer>();
    String number = String.valueOf(z);
    for (int a = 0; a < number.length(); a++) {
        int j = Character.digit(number.charAt(a), 10);
        digits.add(j);
    }
    return digits;

}

在此之后,我得到了一个名为 numbers 的新数组。我在这个数组上使用排序

Collections.sort(numbers);

我的 ArrayList 看起来像这样:

 [0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9]

它有:

 2 times 0;
9 times 1;
4 times 2;
6 times 3;
5 times 4;
6 times 5;
5 times 6;
5 times 7;
5 times 8;
3 times 9;

我需要打印出一串数字,具体取决于它们的数量所以它应该看起来像这样:1354678290

原文由 Piotr Szczepanik 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 698
2 个回答
List<String> list = new ArrayList<String>();
    list.add("a");
    list.add("b");
    list.add("c");
    list.add("a");
    list.add("a");
    list.add("a");

int countA=Collections.frequency(list, "a");
int countB=Collections.frequency(list, "b");
int countC=Collections.frequency(list, "c");

原文由 pruthwiraj.kadam 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Collections.frequency 方法来计算重复项

原文由 PrabaharanKathiresan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题