java8 List集合的排序,求和,取最大值,按照条件过滤
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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(); } } |
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 5. Nginx 负载均衡配置案例(附有详细截图说明++)
· Windows 提权-UAC 绕过