用数字排序RealmResults字符串?

时间:2018-05-29 21:25:18

标签: java android realm realm-java

我需要对这个String列表进行排序,这些列表实际上是大数字(必须使用它,因为Realm不支持BigInteger

RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll().sort("score",Sort.DESCENDING);

结果为5 Strings,其中包含以下数字:
75000个
74990个
6079990个
5006079990个
1079990个

Sort.DESCENDING

排序时按顺序显示

我需要对它们进行正确的排序,并且无法使用Collection使用RealmResults列表获得任何解决方案。使用toArray() RealmResults方法时也遇到问题,因为在所有情况下都存在一些我不理解的不同类型的问题。

感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

RealmResults实现java.util.Collection所以你不能只写

Comparator<Leaderboard> descendingScore = (l1, l2) ->
       (new BigDecimal(l2.getScore()).compareTo(new BigDecimal(l1.getScore()));
List<Leaderboard> leaderboardList = realm.where(Leaderboard.class)
    .distinctValues("score")
    .findAll()
    .stream()
    .sorted(descendingScore)
    .collect(Collectors.toList());