今天在对列表集合进行排序的时候,Comparator.comparing有个列表怎么都不对,
需求:先使用日期排序,再使用销量排序
salesDetailList=salesDetailList.stream().sorted(Comparator.comparing(SalesDetailVO::getDt).thenComparing(SalesDetailVO::getCurrentSalesNum).reversed()).collect(Collectors.toList());
日期一直都是错的,调查后发现日期是String类型,而且是2024-05这种格式,没法转换数字, 经调查,String字符串是按照ASCII编码进行排序的,在转换时要进行强转,然而前文所说,日期没法转数字,后来使用Comparator.reverseOrder()排序方式可解决,如下:
salesDetailList=salesDetailList.stream().sorted(Comparator.comparing(SalesDetailVO::getDt,Comparator.reverseOrder()).thenComparing(SalesDetailVO::getCurrentSalesNum,Comparator.reverseOrder())).collect(Collectors.toList());