求List对象中某一字段的总和
首先使用restTemplate调用exchange方法,生成响应的实体,通过getBody方法获取到响应体的部分
调用Stream流的下面的方法,用来计算该字段的和
List通过stream把字符转成BigDecimal格式并求和
private List<Order> orders = Arrays.asList(
new Order("800"),
new Order("100"),
new Order("2"));
@Test
public void test31() {
BigDecimal reduce = orders.stream().map(Order::getMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("reduce = " + reduce);
BigDecimal reduce1 = orders.stream().map(e->new BigDecimal(e.getMoney())).reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("reduce1 = " + reduce1);
}
根据List对象中的属性排序
1、根据List对象中的一个属性排序
public static void main(String[] args) {
List<User> list = new ArrayList<>();
//排序,根据list中的一个字段排序【升序】
list.sort(Comparator.comparing(User::getId));
//【降序】
list.sort(Comparator.comparing(User::getId).reversed());
}
2、根据List对象中的多个属性排序
public static void main(String[] args) {
List<User> list = new ArrayList<>();
//排序,根据list中的两个字段排序
//bya为第一个排序字段,升序 这个id相同时走第二个排序
Comparator<User> bya = Comparator.comparing(User::getId);
//bya为第二个排序字段,降序.reversed()
Comparator<User> byb = Comparator.comparing(User::getAge).reversed();
Collections.sort(list,bya.thenComparing(byb));
}
相关的实际应用场景,后续还会持续的补充,希望大家能够持续关注~