按其中一个字段(包含字符串列表)对对象列表进行排序

时间:2015-12-08 11:44:58

标签: java android list collections comparator

我有List个对象。在其中我有另一个List Strings(包含数字)。

如何根据List List内的数字订购Strings个对象?

我试着这样做:

 Collections.sort(bets, new Comparator<Bet>() {
       public int compare(Bet b1, Bet b2) {
             return Integer.valueOf(b1.getPlayersHighScores().get(0))
        .compareTo(Integer.valueOf(b2.getPlayersHighScores().get(0)));
       }
 });
 Collections.reverse(bets);

主要问题是List投注可能有一个或多个投注,但List getPlayersHighScores可以包含多个Strings

1 个答案:

答案 0 :(得分:0)

首先,为什么高分是一个String,如果它包含一个数字?将它变成Integer或其他数字会不会更有意义吗?

其次,为什么要保留高分榜?仅保留一个高分(最高分)是不是更有意义?

第三,您可以通过什么属性获得高分榜?正如您所观察到的那样,仅仅为每次下注获得第一个高分都没有多大意义。您想要按每个列表的最大值排序吗?总和?平均?

假设您要使用sum,那么您只需要编写比较器(Java8):

{{1}}