如何从排序列表中获取第一个元素?

Rom*_*man 25 java sorting list

我曾经Collections.sort(playersList);排序过List.所以,我认为playersList现在已经整理好了.但是我怎样才能获得列表的第一个元素?playersList[0]不起作用.

Mat*_*hen 82

playersList.get(0)
Run Code Online (Sandbox Code Playgroud)

Java限制了运算符多态性.所以你get()List对象上使用方法,而不是数组索引operator([])


jjn*_*guy 10

您必须以与Java中的数组不同的方式访问列表.请参阅的javadocList接口以获取更多信息.

playersList.get(0)
Run Code Online (Sandbox Code Playgroud)

但是,如果要查找最小元素playersList,则不应对其进行排序,然后获取第一个元素.与仅搜索列表中的一次以找到最小元素相比,这种运行速度非常慢.

例如:

int smallestIndex = 0;
for (int i = 1; i < playersList.size(); i++) {
    if (playersList.get(i) < playersList.get(smallestIndex))
        smallestIndex = i;
}

playersList.get(smallestIndex);
Run Code Online (Sandbox Code Playgroud)

上面的代码将找到最小的元素O(n)而不是O(n log n)时间.

  • Roman,有这样一种方法,Collections.min(http://java.sun.com/javase/7/docs/api/java/util/Collections.html#min%28java.util.Collection%29). (2认同)