public class Leaderboard extends RealmObject {
String score;
}
RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll();
Результатом является Strings
, который на самом деле представляет собой просто большие числа, хранящиеся как String
, поскольку Realm не поддерживает BigInteger
. Что мне нужно сделать, так это вывести эти числа в числовом порядке.
Невозможно использовать Collections(sort)
, так как минимальный 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); } });
Leaderboard
, чтобы это сработало. - person EpicPandaForce   schedule 30.05.2018