hutool Map<Interget,String> 1,长安 地点排序:按照河源、深圳、惠州、中山、东莞(比如说长安、大岭山、塘厦、寮步,这些都是东莞市的,统一归纳在一起,)(福永、龙岗、布吉、沙井等这些是属于深圳市的,也统一摆在一起)
时间: 2023-07-03 15:11:20 浏览: 38
使用Hutool中的MapUtil可以更简单地实现Map的排序,代码如下:
```
// 创建Map对象
Map<Integer, String> placeMap = new HashMap<>();
// 添加数据
placeMap.put(1, "长安");
placeMap.put(2, "大岭山");
placeMap.put(3, "塘厦");
placeMap.put(4, "寮步");
placeMap.put(5, "福永");
placeMap.put(6, "龙岗");
placeMap.put(7, "布吉");
placeMap.put(8, "沙井");
// 定义排序规则
Comparator<Integer> comparator = Comparator.comparingInt(o -> {
if (o == 1) {
return -1;
} else if (o >= 5) {
return o;
} else {
return o + 10;
}
});
// 排序
Map<Integer, String> sortedPlaceMap = MapUtil.sort(placeMap, comparator);
// 输出排序后的Map
for (Map.Entry<Integer, String> entry : sortedPlaceMap.entrySet()) {
System.out.println(entry.getKey() + "," + entry.getValue());
}
```
在Hutool中,我们可以使用MapUtil.sort方法来对Map进行排序,只需要传入需要排序的Map对象和Comparator对象即可。根据题目中的要求,我们可以定义一个Comparator对象来实现排序规则。
在Comparator中,我们首先判断地点编号是否等于1,如果是,就将地点1放在最前面。如果地点编号大于等于5,就按照地点编号升序排序。如果地点编号小于5,就将编号加上10,这样可以将深圳市和东莞市的地点放在一起,并按照城市编号升序排序。
最后,我们将定义好的Comparator对象传入到MapUtil.sort方法中,并输出排序后的Map即可。