java - 如何在数组列表中查找相同整数的倍数?

标签 java loops integer arraylist

我的问题如下。我有一个整数数组列表。 arraylist 包含 5 个整数,例如 [5,5,3,3,9] 或者 [2,2,2,2,7]。许多数组列表都有重复的值,我不确定如何计算每个值的数量。

问题是如何在 arraylist 中找到重复值并计算该特定重复值的数量。在第一个示例 [5,5,3,3,9] 中,有 2 个 5 和 2 个 3。 [2,2,2,2,7] 的第二个例子只有 4 个 2。我希望找到的结果信息是是否有重复项,有多少重复项以及重复了哪些特定整数。

我不太确定如何在 java 中执行此操作。

任何帮助将不胜感激。谢谢。

最佳答案

对我来说,最直接的答案是使用 Collections.frequency 方法。类似这样的事情:

// Example ArrayList with Integer values
ArrayList<Integer> intList = new ArrayList<Integer>();
intList.add(2);
intList.add(2);
intList.add(2);
intList.add(2);
intList.add(7);

Set<Integer> noDupes = new HashSet<Integer>();
noDupes.addAll(intList); // Remove duplicates

for (Integer i : noDupes) {
    int occurrences = Collections.frequency(intList, i);
    System.out.println(i + " occurs " + occurrences + " times.");
}

如果你愿意,你可以映射每个 Integer 及其出现次数:

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for (Integer i : noDupes) {
    map.put(i, Collections.frequency(intList, i));
}

关于java - 如何在数组列表中查找相同整数的倍数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2741231/

相关文章:

java - 奇怪的重绘功能

ruby - 如何在 Ruby 中创建这个 'for each loop'?

Linux 命令行使用 for 循环并格式化结果

algorithm - 使用 4 个操作找到一对可以达到另一对的整数

c - 如何声明一个带有常量变量的指针

Java 求和 2 个负数

java - 如何防止标签被替换?

java - 如何获取在另一种方法中定义的编辑文本的值?

java - 检查循环内的条件

python - 在python中迭代期间创建 'dynamic list'