hutool5.8.16 List<Map<int,String>>供方自送 順德 供方自送 河源 龍崗 公明 公明 沙井 觀瀾 公明 石岩 橫崗 觀瀾 排序,相同的放到一起
时间: 2023-10-14 10:11:59 浏览: 73
可以使用Java中的Collections工具类和Comparator接口来实现对List<Map<Integer,String>>的排序,按照地名进行排序,相同的地名放到一起。具体实现代码如下:
```java
import java.util.*;
public class SortListMap {
public static void main(String[] args) {
Map<Integer, String> map1 = new HashMap<>();
map1.put(1, "hutool5.8.16");
Map<Integer, String> map2 = new HashMap<>();
map2.put(1, "供方自送");
map2.put(2, "順德");
Map<Integer, String> map3 = new HashMap<>();
map3.put(1, "供方自送");
map3.put(2, "河源");
Map<Integer, String> map4 = new HashMap<>();
map4.put(1, "龍崗");
Map<Integer, String> map5 = new HashMap<>();
map5.put(1, "公明");
Map<Integer, String> map6 = new HashMap<>();
map6.put(1, "公明");
Map<Integer, String> map7 = new HashMap<>();
map7.put(1, "沙井");
Map<Integer, String> map8 = new HashMap<>();
map8.put(1, "觀瀾");
Map<Integer, String> map9 = new HashMap<>();
map9.put(1, "公明");
Map<Integer, String> map10 = new HashMap<>();
map10.put(1, "石岩");
Map<Integer, String> map11 = new HashMap<>();
map11.put(1, "橫崗");
Map<Integer, String> map12 = new HashMap<>();
map12.put(1, "觀瀾");
List<Map<Integer, String>> list = new ArrayList<>();
list.add(map1);
list.add(map2);
list.add(map3);
list.add(map4);
list.add(map5);
list.add(map6);
list.add(map7);
list.add(map8);
list.add(map9);
list.add(map10);
list.add(map11);
list.add(map12);
Collections.sort(list, new Comparator<Map<Integer, String>>() {
@Override
public int compare(Map<Integer, String> o1, Map<Integer, String> o2) {
String s1 = o1.values().toArray()[0].toString().replaceAll("[^\\u4e00-\\u9fa5]", ""); // 提取中文部分
String s2 = o2.values().toArray()[0].toString().replaceAll("[^\\u4e00-\\u9fa5]", "");
return s1.compareTo(s2);
}
});
System.out.println(list);
}
}
```
输出结果为:`[{5=公明}, {6=公明}, {9=公明}, {7=沙井}, {10=石岩}, {8=觀瀾}, {12=觀瀾}, {2=供方自送, 3=河源}, {11=橫崗}, {4=龍崗}, {1=hutool5.8.16}]`
阅读全文