Сортировать строки RealmResults численно? - PullRequest
0 голосов
/ 30 мая 2018

Мне нужно отсортировать этот список String, которые на самом деле являются большими числами (пришлось использовать это, поскольку BigInteger не поддерживается в Realm)

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

Результаты5 Strings со следующими номерами:7500074990607999050060799901079990

, которые отображаются в таком порядке при сортировке по Sort.DESCENDING

Мне нужно правильно их отсортировать, и я не могу найти никакого решения, если Collection работает со списком RealmResults.Также возникают проблемы при использовании toArray() метода RealmResults, поскольку во всех случаях есть некоторые проблемы с различными типами, которые я не понимаю.

Буду признателен за любую помощь, спасибо!

1 Ответ

0 голосов
/ 30 мая 2018

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());
...