java8新特性流 相关业务排序使用:
当集合是JSONArray的时候
array = array.stream().sorted(Comparator.comparing(obj -> JSONObject.parseObject(JSON.toJSONString(obj)).getString(orderParamName), Collator.getInstance(Locale.CHINA)))
.collect(Collectors.toCollection(JSONArray::new));
当集合是对象的时候
字段存在空值的时候需要通过nullsFirst nullsLast 去处理
qqList = qqList.stream().sorted(Comparator.comparing(TbDealerQq::getNickName,Comparator.nullsFirst(String::compareTo))).collect(Collectors.toList());```
汉字需要用 Collator.getInstance(Locale.CHINA)
处理
qqList = qqList.stream().sorted(Comparator.comparing(TbDealerQq::getNickName,Collator.getInstance(Locale.CHINA))).collect(Collectors.toList());
这个是其他博主哪里的 记录一下
List<类> list; 代表某集合
//返回 对象集合以类属性一升序排序
list.stream().sorted(Comparator.comparing(类::属性一));
//返回 对象集合以类属性一降序排序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序
list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));//以属性一降序
//返回 对象集合以类属性一升序 属性二升序
list.stream().sorted(Comparator.comparing(类::属性一).thenComparing(类::属性二));
//返回 对象集合以类属性一降序 属性二升序 注意两种写法
list.stream().sorted(Comparator.comparing(类::属性一).reversed().thenComparing(类::属性二));//先以属性一升序,升序结果进行属性一降序,再进行属性二升序