list 的三种求和方式

public class ListTest03 {
    @Test
    public void test() {
        List<Student> list  = new ArrayList<>();
        Student s1 = new Student();
        s1.setId(1);
        s1.setName("张三");
        s1.setAge(28);

        Student s2 = new Student();
        s2.setId(2);
        s2.setName("李四");
        s2.setAge(29);

        Student s3 = new Student();
        s3.setId(3);
        s3.setName("网二");
        s3.setAge(30);

        list.add(s1);
        list.add(s2);
        list.add(s3);
        System.out.println(list);
        //[Student(id=1, name=张三, age=28), Student(id=2, name=李四, age=29), Student(id=3, name=网二, age=30)]

        System.out.println("=========第一种方式================");
        int suma =  list.stream().map(e -> e.getAge()).reduce(Integer::sum).get();//求和  87
        System.out.println(suma);
        int maxa =  list.stream().map(e -> e.getAge()).reduce(Integer::max).get();//最大  30
        System.out.println(maxa);
        int mina =  list.stream().map(e -> e.getAge()).reduce(Integer::min).get();//最小  28
        System.out.println(mina);

        System.out.println("=========第二种方式================");

        double doublesum =  list.stream().mapToDouble(Student::getAge).sum();//和
        System.out.println(doublesum);
        int intmax = list.stream().mapToInt(Student::getAge).max().getAsInt();//最大
        System.out.println(intmax);
        int intmin = list.stream().mapToInt(Student::getAge).min().getAsInt();//最小
        System.out.println(intmin);
        double avg =  list.stream().mapToDouble(Student::getAge).average().getAsDouble();//平均
        System.out.println(avg);
    }
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
class Student{
    int id;
    String name;
    int age;
 }

猜你喜欢

转载自blog.csdn.net/KAITUOZHEMJ/article/details/111600740