java中有TreeSet数据结构,它提供了获取1个最大元素的能力。我需要能够获取 N 个最大元素集合的数据结构。
我需要这样的东西:
GreatestN<Integer> greatest = new GreatestN<>(Arrays.asList(5, 2, 1, 7));
greatest.getN(2); // returns {1, 2}
greatest.getN(3); // returns {1, 2, 5}
greatest.add(0);
greatest.getN(2); // returns {0, 1}
最佳答案
您可以对列表进行排序,然后传递索引值以获得最大的数字。
List<Integer> greatest = Arrays.asList(5, 2, 1, 7);
Collections.sort(greatest); // By default sorts ascending
System.out.println(greatest.get(greatest.size()-1)); //will give you greatest element in the list.
//System.out.println(greatest.get(greatest.size()-1-nthNumber));
System.out.println(greatest.get(0));//will give you lowest element in the list.
关于java - 是否有一种数据结构能够获取 N 个最大元素的集合,并用 Java 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303232/