我有要求-
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/

10-10 21:46