我有要求-
1.在列表/数组中有随机值,我需要找到3个最大值。
2.我有一个值池,并且每次更新池的时间可能是每5秒一次,现在每次更新后,我需要从列表池中找到3个最大值。
我想在列表上三次使用Math.max,但我不认为这是
一种非常优化的方法。
>任何排序机制都不会很昂贵,因为我只为顶层而烦恼
3个最大值,为什么要对所有这些排序
请提出在JAVA中最好的方法
最佳答案
排序列表,获取3个最大值。如果您不希望花很多钱,请迭代并维护n个最大值。
维护池是一个排序的集合。
更新:FYI Guava具有一个带有greatestOf
方法的Ordering类,以获取集合中的n个max元素。您可能要检查实现。
Ordering.greatestOf
关于java - 从N个列表中找到K个最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9941613/