java - 对 RealmResults 字符串进行数字排序?
问题描述
我需要对这个String
实际上是大数字的列表进行排序(必须使用它,因为BigInteger
Realm 不支持)
RealmResults<Leaderboard> leaderboardList = realm.where(Leaderboard.class).distinct("score").findAll().sort("score",Sort.DESCENDING);
结果为 5 Strings
,数字如下:
75,000
74,990
6,079,990
5,006,079,990
1,079,990
排序时按该顺序显示Sort.DESCENDING
我实际上需要对它们进行正确排序,并且无法通过Collection
使用RealmResults
列表获得任何解决方案。使用toArray()
方法也有问题,RealmResults
因为在所有情况下,我不理解的不同类型都有一些问题。
将不胜感激任何帮助,谢谢!
解决方案
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());
推荐阅读
- python-3.x - 为什么使用 subprocess.run 安装 Microsoft Installer 包 (.msi) 时未安装包
- reactjs - 如何使用 Axios 从 React 组件调用带有 .Net 核心的 Grpahql?
- android - 样式/TextAppearance.Compat.Notification.Info) 未找到
- jms - 你能有一个 ActiveMQ 的备份持久订阅者吗
- python-3.x - 使用 pytest 运行一些 unittest 文件时,导入模块不会运行其中的代码
- python - 在 django 中更新
- sql-server - 使用表值参数插入表时遇到问题
- python - 如何在python中将json转换为纯文本
- pyqt - PyQt5 修复 Qlabel 位置
- batch-file - Windows 更多命令要求用户输入