stream
- 获取List对象里的某个属性的map集合 && List使用Stream对BigDecimal求和方法
@Test
public void testStream(){
List<User> users = new ArrayList<>();
for (int i = 0; i < 5; i++) {
User user = new User("a" + i, i,BigDecimal.valueOf(i).multiply(BigDecimal.valueOf(10)));
users.add(user);
}
List<String> collect = users.stream().map(User::getName).collect(Collectors.toList());
System.out.println(collect);
BigDecimal richSum = users.stream().map(User::getRich).reduce(BigDecimal::add).get();
System.out.println(richSum);
}
- BigDecimal向上、向下取整
BigDecimal b1 = new BigDecimal("3.2");
BigDecimal b2 = new BigDecimal("3.6");
System.out.println(b1.setScale(0, RoundingMode.UP)); //向上取整
System.out.println(b1.setScale(0, RoundingMode.DOWN));//向下取整
System.out.println(b2.setScale(0, RoundingMode.UP));
System.out.println(b1.setScale(0, RoundingMode.DOWN));
List排序
@Test
public void testListSort(){
List<User> users = new ArrayList<>();
User user1 = new User("张三", 23, BigDecimal.valueOf(123));
User user2 = new User("李四", 23, BigDecimal.valueOf(455));
User user3 = new User("王五", 16, BigDecimal.valueOf(152));
User user4 = new User("杨一", 16, BigDecimal.valueOf(787));
User user5 = new User("小明", 23, BigDecimal.valueOf(632));
User user6 = new User("小红", 5, BigDecimal.valueOf(100));
users.add(user1);
users.add(user2);
users.add(user3);
users.add(user4);
users.add(user5);
users.add(user6);
//先对age进行排序,age相同时再根据rich排序
users.sort(Comparator.comparing(User::getAge).thenComparing(User::getRich));
排序前:
排序后: