hutool List<Map<Interget,Object>> 取map的某个值进行排序,根据 "河源", "深圳", "惠州", "中山", "东莞", "广州", "佛山", "珠海", "無鍚", "供方自送" 排序
时间: 2023-07-03 07:16:18 浏览: 113
如果需要按照指定的顺序进行排序,可以使用`java.util.Comparator`接口的`compare`方法来实现。具体步骤如下:
1. 自定义一个实现了`Comparator`接口的排序器类,实现`compare`方法。
2. 使用`Collections.sort`方法对`List<Map<Integer, Object>>`进行排序,传入自定义的排序器实例。
下面是示例代码:
```
List<Map<Integer, Object>> list = new ArrayList<>();
// 自定义排序器类
class MyComparator implements Comparator<Map<Integer, Object>> {
private final List<String> orderList;
public MyComparator(List<String> orderList) {
this.orderList = orderList;
}
@Override
public int compare(Map<Integer, Object> o1, Map<Integer, Object> o2) {
// 假设需要按key为1的值进行排序
String value1 = (String) o1.get(1);
String value2 = (String) o2.get(1);
int index1 = orderList.indexOf(value1);
int index2 = orderList.indexOf(value2);
return Integer.compare(index1, index2);
}
}
// 指定排序顺序
List<String> orderList = Arrays.asList("河源", "深圳", "惠州", "中山", "东莞", "广州", "佛山", "珠海", "無鍚", "供方自送");
// 使用自定义排序器进行排序
Collections.sort(list, new MyComparator(orderList));
```
在`MyComparator`类中,实现了`compare`方法,返回value1和value2在`orderList`中的索引比较结果。如果需要按照其他字段进行排序,可以修改`compare`方法的实现。最后,使用`Collections.sort`方法对`List<Map<Integer, Object>>`进行排序,传入`MyComparator`实例即可。
阅读全文