Java 领域结果在 Java 7 中排序?
Java Realm Results sorting in Java 7?
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);
}
});
为了后代:这个问题想多了。这是采用 RealmResults 列表、将结果迭代到字符串数组、将字符串转换为 BigInteger 并将它们从大到小排序的解决方案。
RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll();
List<String> strings = new ArrayList<>();
for(int i = 0; i < leaderboardList.size(); i++) {
strings.add(leaderboardList.get(i).getScore());
}
Collections.sort(strings, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
BigInteger bi1 = new BigInteger(o1);
BigInteger bi2 = new BigInteger(o2);
return bi2.compareTo(bi1);
}
});
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); } });
为了后代:这个问题想多了。这是采用 RealmResults 列表、将结果迭代到字符串数组、将字符串转换为 BigInteger 并将它们从大到小排序的解决方案。
RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll();
List<String> strings = new ArrayList<>();
for(int i = 0; i < leaderboardList.size(); i++) {
strings.add(leaderboardList.get(i).getScore());
}
Collections.sort(strings, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
BigInteger bi1 = new BigInteger(o1);
BigInteger bi2 = new BigInteger(o2);
return bi2.compareTo(bi1);
}
});