hutool List<Map<int,Object>> 排序,特定值放前面
时间: 2023-08-10 10:04:58 浏览: 245
如果你要对`List<Map<Integer, Object>>`进行排序,并且想把其中某个键值为特定值的元素放到最前面,可以使用Hutool的`CollUtil`类中的`sort`方法结合`CollUtil.sortByProperty`方法来实现。具体实现可以参考以下代码示例:
```java
List<Map<Integer, Object>> list = new ArrayList<>();
// 往List中添加Map元素
// 对List进行排序,以Map中的某个键值为排序依据,其中特定值放到最前面
CollUtil.sort(list, (o1, o2) -> {
Integer value1 = (Integer) o1.get("key");
Integer value2 = (Integer) o2.get("key");
// 如果o1的键值为特定值,返回-1,即o1排在o2前面;如果o2的键值为特定值,返回1,即o2排在o1前面;否则按照键值大小升序排序
return value1.equals(特定值) ? -1 : value2.equals(特定值) ? 1 : value1.compareTo(value2);
});
```
在上面的示例中,我们使用`CollUtil.sortByProperty`方法指定了排序规则,如果某个元素的"key"键值为特定值,我们就返回-1,让该元素排在前面;如果另一个元素的"key"键值为特定值,我们就返回1,让该元素排在后面;否则按照键值大小升序排序。你可以根据实际需求修改排序规则。
阅读全文