package com.sdream.ls.client; import java.util.*; import java.util.function.Predicate; import java.util.stream.Collector; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @author liyongqiang * @title: Test1 * @description: TODO * @date 2019/9/209:43 */ public class Test1 { public static void main(String[] args) { List<User> list=new ArrayList<>(); list.add(new User("1","张三","一年级",95)); list.add(new User("2","李四","二年级",96)); list.add(new User("3","王五","三年级",97)); list.add(new User("4","朱留","四年级",100)); //遍历 list.forEach((o)-> System.out.println(""+o.toString())); //遍历 list.forEach(o-> System.out.println(""+o.toString())); //转 hashSet Set<User> set1=list.stream().collect(Collectors.toSet()); //转 hashSet Set<String> set2=list.stream().map(User::getName).collect(Collectors.toSet()); //转treeSet TreeSet<String> set3=list.stream().map(User::getName).collect(Collectors.toCollection(TreeSet::new)); //转 map Map<String,String> map1=list.stream().collect(Collectors.toMap(User::getId,User::getLevel)); //转map Map<String,String> map2=list.stream().collect(Collectors.toMap(User::getId,User::getName,(token, token2) -> token)); //分组 Map<String,List<User>> map3=list.stream().collect(Collectors.groupingBy(User::getName)); //分组count Map<String,Long> map4=list.stream().collect(Collectors.groupingBy(User::getName,Collectors.counting())); //分组求和 Map<String,Integer>map5=list.stream().collect(Collectors.groupingBy(User::getName,Collectors.summingInt(User::getScore))); //过滤条件 List<User> temp1=list.stream().filter(o->"1".equals(o.getId())).collect(Collectors.toList()); //多个过滤条件 Predicate<User> scoFilter=(o)->(o.getScore()>25); Predicate<User> clsFilter=(o)->("三年级".equals(o.getLevel())); List<User> temp2=list.stream().filter(scoFilter).filter(clsFilter).collect(Collectors.toList()); //取前多少个 List<User> temp3=list.stream().limit(2).collect(Collectors.toList()); //升序排序 List<User>temp4=list.stream().sorted((u1,u2)->(u1.getScore()-u2.getScore())).collect(Collectors.toList()); //降序排序 List<User>temp5=list.stream().sorted((u1,u2)->(u2.getScore()-u1.getScore())).collect(Collectors.toList()); //升序 第一个 User user1=list.stream().max((u1,u2)->(u1.getScore()-u2.getScore())).get(); //降序第一个 User user2=list.stream().min((u1,u2)->(u1.getScore()-u2.getScore())).get(); //求和 int sum=list.parallelStream().mapToInt(p->p.getScore()).sum(); IntSummaryStatistics stats=list.stream().mapToInt((x)->x.getScore()).summaryStatistics(); System.out.printf("最大的数字"+stats.getMax()); System.out.printf("最小的数字"+stats.getMin()); System.out.printf("所有数字的综合"+stats.getSum()); System.out.printf("所有数字的平均值"+stats.getAverage()); } } class User{ private String id; private String name; private String level; private int score; public User(String id, String name, String level, int score) { this.id = id; this.name = name; this.level = level; this.score = score; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getLevel() { return level; } public void setLevel(String level) { this.level = level; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return "User{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", level='" + level + '\'' + ", score=" + score + '}'; } }
jdk1.8表达式学习
package com.sdream.ls.client; import java.util.*; import jav…
免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。