2013-10-05 96 views
0

我有一個ArrayList對象。每個對象都是Player類型(我有的一個類)。每個Player對象都有一個getName()方法和一個getValue()方法。 getValue方法是整數類型。 所有Player對象都進入ArrayList,listOfPlayers。 如何找到具有最高getValue()的PLayer對象?在ArrayList中查找對象Java

我知道有一個名爲Collections.max()的方法,但對我來說,它似乎只有在ArrayList剛好是整數時才起作用。

感謝

+0

使用比較,排序列表,檢索的第一個元素。遍歷所有元素並獲得最高的元素。 –

+0

http://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#max(java.util.Collection,java.util.Comparator) –

+0

如果您只需要找到它一次,只是做一個線性搜索。 – MeBigFatGuy

回答

2

您需要實現比較你的類像這樣

Comparator<Player> cmp = new Comparator<Player>() { 
    @Override 
    public int compare(Player o1, Player o2) { 
     return Integer.valueOf(o1.getValue()).compareTo(Integer.valueOf(o2.getValue())); 
    } 
}; 

然後調用

Collections.max(listOfPlayers, cmp);