我正在使用堆排序算法对对象列表进行排序,并且工作正常。问题是,当我尝试使用以下代码获取列表的前k个结果时:
HeapSort.sort(songs);
List<Song> highk = songs.subList(songs.size() - k, songs.size());
System.out.println(highk);
这将打印列表的最后k个元素。 k很好,因为即使用数字更改它,我也有同样的问题。
答案 0 :(得分:0)
如果要使用前k个元素,则方法调用应如下所示:
List<Song> highk = songs.subList(0, k);
当您看到subList方法的java doc注释时,便清楚地表明,第一个参数是fromIndex,第二个参数是toIndex(here)。