list根据某一个字段的首字母排序:
// 按姓名首字母排序
Comparator<Object> cmp = Collator.getInstance(Locale.CHINA);
//按照首字母排序
list.sort((a, b) -> cmp.compare(a.getName(), b.getName()));
Map根据key进行排序:
/**
* map按照key进行排序
* @param map
* @return
*/
public static Map<String, List<SaleProduct>> sortMapByKey(Map<String,List<SaleProduct>> map) {
if (map == null || map.isEmpty()) {
return null;
}
Map<String, List<SaleProduct>> sortMap = new TreeMap<String, List<SaleProduct>>(new Comparator<String>() {
public int compare(String obj1, String obj2) {
return obj1.compareTo(obj2);//升序排序
}
});
sortMap.putAll(map);
return sortMap;
}
或者使用流的方式进行排序:
//按照key升值排序
Map<String, List<SaleProduct>> stringListMap = listMap.entrySet().stream()
.sorted(Map.Entry.comparingByKey()).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,(oldValue, newValue) -> oldValue,
() -> new TreeMap<>()
));