Java jdk.18 stream 排序、求和


一、实体对象属性排序

@Data
@NoArgsConstructor
public class MainBusinessRatio {

    /**
     * 名称
     */
    private String bizName;
    /**
     * 比率
     */
    private BigDecimal bizValue;

}

//降序,从大到小取前五
List<MainBusinessRatio> ratioList = new ArrayList<>(1);
ratioList.stream().sorted(Comparator.comparing(MainBusinessRatio::getBizValue).reversed()).limit(5).collect(Collectors.toList());

二、数据降序从大到小

List<Long> values = new ArrayList<>(1);
values.stream().sorted().collect(Collectors.toList());

三、数据求和

List<Long> values = new ArrayList<>(1);

values().stream().reduce(Long::sum).orElse(0L);

double sum_price = listTest.stream().mapToDouble(MainBusinessRatio::bizValue).sum();