考虑 ArrayList
的 String
含有
animalsArray[dog, cat, dog, dog, cat, duck, duck, dog]
我可以轻松地使用 HashMap
来查找最常见的 String
,使用 HashMap
值作为计数器,以及存储动物名称的键 .
如果 ArrayList
已排序
[dog, dog, dog, dog, cat, cat, duck, duck]
在不使用 Hashmaps
的情况下找到最常见元素的最简单方法是什么?我正在考虑使用for循环比较 animalArray.get(i)
和 animalArray.get(i-1)
,但我无法开发此解决方案 . 如果有的话,有什么优势,当我们需要时,我们需要找到最常见的元素排序 ArrayList
?
1 回答
我认为(Java 8)这很容易:
这将创建
Stream
的Stream
,并在List
中找到频率最高的元素 .想象一下未分类
List
:对于每个元素,您将必须搜索
List
的其余部分以查看它出现的次数 .但是排序
List
:您只需要一个计数器来跟踪包含相同元素的最长子列表 . 然后变成类似(伪代码)的东西: