Stream sorted 使用

                // 取出小计
		Map<String, BigDecimal> map = oldList.stream().filter(l -> l.getDimension2().equals("小计")).collect(Collectors.toMap(ChartDataView::getDimension1, ChartDataView -> ChartDataView.getTarget5()));
		// 将小计放入对应部门 排序用
		oldList.forEach( item -> {
				if(map.containsKey(item.getDimension1())){
					item.setTarget7(map.get(item.getDimension1()));
					if("小计".equals(item.getDimension2())){
						item.setTarget8(new BigDecimal("1"));
					}else{
						item.setTarget8(BigDecimal.ZERO);
					}
				}
			}
		);
		List<ChartDataView> newList = oldList.stream().sorted(Comparator.comparing(ChartDataView::getTarget7,(x,y)->y.compareTo(x))
				.thenComparing(ChartDataView::getDimension1)
				.thenComparing(Comparator.comparing(ChartDataView::getTarget8))
				.thenComparing(Comparator.comparing(ChartDataView::getTarget5,(x,y)->y.compareTo(x)))).collect(Collectors.toList());
posted @ 2022-07-08 10:05  阿灿呀  阅读(182)  评论(0)    收藏  举报