public class Leaderboard extends RealmObject {
String score;
}
RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll();
Результатами являются Strings
, которые на самом деле являются просто большими числами, хранящимися как String
, поскольку Realm не поддерживает BigInteger
.Что мне нужно сделать, это вывести эти числа в числовом порядке .
Невозможно использовать Collections(sort)
, так как min sdk равно 16 .Не повезло и с использованием StreamSupport lib.В настоящее время я пытаюсь преобразовать RealmResults
в простой массив строк, чтобы я мог выполнить сортировку по этому вопросу, но у меня возникли проблемы.Следующее приводит к ошибке приведения, но даже до того, как изменения приведут к ldrStrings.get(0)
, получится что-то вроде proxy[((75000))]
, которое является действительным числом, но окружено этим текстом:
RealmResults<Leaderboard> leaderboardList =
realm.where(Leaderboard.class).distinct("score").findAll();
Leaderboard[] leaderboardArray = (Leaderboard[]) leaderboardList.toArray();
List<String> ldrStrings = new ArrayList(leaderboardArray.length);
for (Object object : leaderboardArray) {
ldrStrings.add(object != null ? object.toString() : null);
}
Collections.sort(ldrStrings, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
BigInteger bi1 = new BigInteger(o1);
BigInteger bi2 = new BigInteger(o2);
return bi1.compareTo(bi2);
}
});