java - 在 Java 中查找 ArrayList 中最常见/最频繁的元素

标签 java arrays arraylist frequency

我有一个包含 5 个元素的数组列表,每个元素都是一个枚举。我想构建一个方法,它返回另一个数组列表,其中包含列表中最常见的元素。

示例 1:

[Activities.WALKING, Activities.WALKING, Activities.WALKING, Activities.JOGGING, Activities.STANDING]

方法将返回:[Activities.WALKING]

示例 2:

[Activities.WALKING, Activities.WALKING, Activities.JOGGING, Activities.JOGGING, Activities.STANDING]

方法将返回:[Activities.WALKING, Activities.JOGGING]

我尝试过什么:

我的想法是为每个 Activity 声明一个计数,但这意味着如果我想添加另一个 Activity ,我必须修改代码来为该 Activity 添加另一个计数。

另一个想法是声明 HashMap<Activities, Integer>并迭代数组以插入每个 Activity 及其在其中发生的情况。那么我该如何提取出现次数最多的 Activity 呢?

你们能帮帮我吗?

最佳答案

实现此类操作的最常见方法是使用 Map 进行计数。 :定义一个Map<MyEnum,Integer>它为枚举的每个元素存储零。然后遍历列表,并为列表中找到的每个元素增加计数器。同时维持当前的max数数。最后,遍历计数器映射条目,并将其计数与 max 的值匹配的所有条目的键添加到输出列表中。 .

关于java - 在 Java 中查找 ArrayList 中最常见/最频繁的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15600982/

相关文章:

javascript - 如何替换点击时的可变内容?

java - Pig Latin Translator Program(英文句子输入)

java - 为什么在 IntelliJ IDEA 中创建 sbt 项目会导致 "Permission Denied"?

java - IndexOutOfBoundException 在 recyclerview 上检测到不一致

java - 从外部类获取实例变量的访问权限

javascript - 尝试从数组中删除一个元素并将数组 "refresh"放在 Javascript 的网页上

python - Pandas 数据框 : How to natively get minimum across range of rows and columns

Java 数组列表 java.lang.NullPointerException

java - 删除ArrayList中的对象本身

java - 在 Java 中从图像创建缩略图