zoukankan      html  css  js  c++  java
  • java8 List集合的排序,求和,取最大值,按照条件过滤

    public class Java8Test {

     
        public static void main(String[] args) {
     
            Person p1 = new Person("麻子"31);
            Person p2 = new Person("李四"20);
            Person p3 = new Person("王五"26);
     
            List<Person> personList = new ArrayList<Person>();
            personList.add(p1);
            personList.add(p2);
            personList.add(p3);
     
            //java8遍历
            personList.forEach(p -> System.out.println(p.getAge()));
            //按照person的 age进行排序
            //方法一
            personList.sort((o1, o2) -> o1.getAge().compareTo(o2.getAge())); //正序
            personList.sort((o1, o2) -> o2.getAge().compareTo(o1.getAge())); //倒序
            //方法二
            personList.sort(Comparator.comparing(Person::getAge)); // 正序
            personList.sort(Comparator.comparing(Person::getAge).reversed()); // 倒序
            //遍历
            personList.forEach(p -> System.out.println(p.getAge()));
     
            System.out.println("========================================");
     
            //获取年龄最大的Person
            Person maxAgePerson = personList.stream().max(Comparator.comparing(Person::getAge)).get();
            System.out.println(maxAgePerson.getAge());
     
            System.out.println("========================================");
     
            //获取年龄最小的Person
            Person minAgePerson = personList.stream().min(Comparator.comparing(Person::getAge)).get();
            System.out.println(minAgePerson.getAge());
     
            //过滤出年龄是20的person,想过滤出什么条件的都可以
            List<Person> personList1 = personList.stream().filter(person -> person.getAge() == 20).collect(Collectors.toList());
     
            //统计出年龄等于20的个数
            long count = personList.stream().filter(person -> person.getAge() == 20).count();
     
            //获得年龄的平均值
            double asDouble = personList.stream().mapToInt(person -> person.getAge()).average().getAsDouble();
     
            //获得年龄的求和
            int sum = personList.stream().mapToInt(person -> person.getAge()).sum();
     
        }
    }
  • 相关阅读:
    Linux shellcode sample
    Linux Shell Bash 带有特殊含义的退出码
    编写 Bash 补全脚本
    《什么是数学》读书笔记(一):反证法、数学归纳法与唯一分解定理
    令人称奇的简单证明:五种方法证明根号2是无理数
    2017 Multi-University Training Contest
    2017 Multi-University Training Contest
    2017 Multi-University Training Contest
    2017 Multi-University Training Contest
    51 Nod 1008 N的阶乘 mod P【Java大数乱搞】
  • 原文地址:https://www.cnblogs.com/interdrp/p/12076703.html
Copyright © 2011-2022 走看看