代码举例
@Slf4j
public class TestList {
@Test
public void test01 ( ) throws IOException {
User user1 = new User ( 2 , "Steven" , "@sun123" , new Date ( ) , 2000.0 , new BigDecimal ( 2000 ) ) ;
User user2 = new User ( 3 , "Steven" , "@sun123" , new Date ( ) , 3000.0 , new BigDecimal ( 3000 ) ) ;
User user3 = new User ( 4 , "Steven" , "@sun123" , new Date ( ) , 4000.0 , new BigDecimal ( 4000 ) ) ;
List< User> userList = new ArrayList < > ( ) ;
userList. add ( user1) ;
userList. add ( user2) ;
userList. add ( user3) ;
BigDecimal max = userList. stream ( ) . map ( User: : getWeight) . max ( ( x1, x2) - > x1. compareTo ( x2) ) . get ( ) ;
BigDecimal min = userList. stream ( ) . map ( User: : getWeight) . min ( ( x1, x2) - > x1. compareTo ( x2) ) . get ( ) ;
BigDecimal sum = userList. stream ( ) . map ( User: : getWeight) . reduce ( BigDecimal. ZERO, BigDecimal: : add) ;
BigDecimal average = userList. stream ( ) . map ( User: : getWeight) . reduce ( BigDecimal. ZERO, BigDecimal: : add) . divide ( BigDecimal. valueOf ( userList. size ( ) ) , 2 , BigDecimal. ROUND_HALF_UP) ;
log. info ( max. toString ( ) ) ;
log. info ( min. toString ( ) ) ;
log. info ( sum. toString ( ) ) ;
log. info ( average. toString ( ) ) ;
}
}
输出结果
10:43:59.260 [main] INFO TestList - 4000
10:43:59.267 [main] INFO TestList - 2000
10:43:59.267 [main] INFO TestList - 9000
10:43:59.267 [main] INFO TestList - 3000.00