0

我有一个对象的 ArrayList。每个对象都是 Player 类型(我拥有的类之一)。每个 Player 对象都有一个 getName() 方法和一个 getValue() 方法。getValue 方法是整数类型。所有的 Player 对象都进入一个 ArrayList,listOfPlayers。如何找到具有最高 getValue() 的 PLayer 对象?

我知道有一个名为 Collections.max() 的方法,但对我来说,它似乎只有在 ArrayList 充满整数时才有效。

谢谢

4

2 回答 2

5

max()与比较器一起使用

Collection.max(collection, customComparator);

另见

于 2013-10-05T05:21:09.167 回答
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);
于 2013-10-05T05:26:20.957 回答