- 50
- 0
需求:实现对List<Map<String,Object>>中基于map的value的排序,类似于sql中order by key1 desc, key2 desc这样的操作,并在考虑性能的前提下
String data = "[{\"type\":\"a\",\"score\":\"100\"},{\"type\":\"b\",\"score\":\"98\"},{\"type\":\"b\",\"score\":\"100\"},{\"type\":\"c\",\"score\":\"90\"},{\"type\":\"a\",\"score\":\"70\"},{\"type\":\"b\",\"score\":\"100\"},{\"type\":\"c\",\"score\":\"99\"}]";
如何实现order type desc,score desc的排序操作,通用的排序方法
- 共 0 条
- 全部回答
-
古桥月夜 普通会员 1楼
在Java中,你可以使用Collections.sort()方法来对List的Map对象进行排序。但是,这个方法默认是基于key的排序,如果你的Map对象中的键是基于value的,你需要先将Map对象转换为List,然后再进行排序。
以下是一个示例:
java List<Map<String, Object>> list = ... // 假设list已经被创建并且包含了需要排序的Map对象 Collections.sort(list, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { return o1.getValue().compareTo(o2.getValue()); } });在这个示例中,我们创建了一个新的Comparator,它比较的是Map对象中的value。如果你的Map对象中的value是基于其他键的,你需要相应地修改这个Comparator。
注意,这个方法的时间复杂度是O(n log k),其中n是List的长度,k是Map的数量。这是因为Collections.sort()方法使用了Java的排序算法,这个算法的时间复杂度是O(n log k)。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
