Java中Stream简明使⽤教程
  都JDK15了,你还在使⽤java8?那好,你知道jdk8的Strean都有哪些⽤法吗...
  java8,永远滴神,下⾯我们就简要说⼀下stream的⼀些常⽤⽅法,跟着我的节奏...冲!
  2.1、Java8是⼀个⾮常成功的版本,尤其是改版本中的搭配Lambda,使得我们更便利的进⾏集合操。
  Stream可以将需要处理的集合元素看做是流操作,是对结合对象功能的⼀个增强,Stream API借助同时出现的Lambda表达式  可以更为便利地对集合进⾏:筛选、排序、聚合、分组等操作。
  2.2、Stream的⼏个特性:
  ①不存储数据,只是对数据的记性运算
  ②不会改变数据源,但是可以产⽣⼀个新的集合或其他值
  ③它的⼯作流程是:获取数据流 -> 进⾏制定运算 -> 产⽣新的数据流 -> ⽀持数据新的数据结果
  List integerList=Arrays.asList(1,2,3,4,5,6,7,8,9,1,2,4);
  System.out.println("***********************遍历输出****************************");
  // 这⾥也可以不使⽤stream,直接使⽤forEach
  integerList.stream().forEach(System.out :: println);
  Java
  System.out.println("***********************获取数量****************************");
  long countRlt=integerList.stream().count();
  System.out.println(countRlt);
  Java
  System.out.println("***********************获取最⼤值****************************");
  Integer maxRlt=integerList.stream().max(Integer::compareTo).get();
  System.out.println(maxRlt);
  System.out.println("***********************获取最⼩值****************************");
  Integer minRlt=integerList.stream().min(Integer::compareTo).get();
  System.out.println(minRlt);
  Java
  System.out.println("***********************任意条件检测****************************");
  System.out.println(integerList.stream().anyMatch(item -> item > 7));
  System.out.println("***********************全部条件检测****************************");
  boolean allMatchRlt=integerList.stream().allMatch(item -> item % 2==0);
jdk怎么使用  System.out.println(allMatchRlt ? "集合中全部都是偶数" : "集合中并不全是偶数");
  System.out.println("***********************条件遍历输出****************************");
  integerList.stream().filter(item -> item > 5).forEach(System.out :: println);
  System.out.println("***********************条件输出第⼀个值****************************");
  Integer rltFir=integerList.stream().filter(item -> item > 6).findFirst().get();
  System.out.println(rltFir);
  System.out.println("***********************条件输出任意值****************************");
  Integer rltAny=integerList.parallelStream().filter(item -> item > 6).findAny().get();
  System.out.println(rltAny);
  System.out.println("***********************条件筛选并放⼊新容器中****************************");
  List integerListFilter=integerList.stream().filter(item -> item >=6).List());
  integerListFilter.forEach(System.out :: println);
  Java
  System.out.println("***********************去除重复值并输出****************************");
  Stream integerStream=integerList.stream().distinct();
  integerStream.forEach(System.out :: println);
  Java
  System.out.println("***********************返回固定长度****************************");
  integerList.stream().limit(3).forEach(System.out :: println);
  System.out.println("***********************去掉指定长度的元素****************************");
  integerList.stream().skip(3).forEach(System.out :: println);
  Java
  System.out.println("***********************规约****************************");
  System.out.println("集合中所有元素之和为:" + integerList.stream().reduce(0, (a, b) -> a + b ));
  System.out.println("集合中所有元素之和为:" + integerList.stream().reduce(0, Integer::sum));
  System.out.println("集合中最⼤的数为:" + integerList.stream().reduce(0, Integer :: max));
  Java
  System.out.println("***********************map映射****************************");
  List streamHandleEntityList=new ArrayList<>();
  for(int i=0;i<10;i++){
  StreamHandleEntity streamHandleEntityTmp=new StreamHandleEntity();
  streamHandleEntityTmp.setName("name" + i);
  streamHandleEntityTmp.setPassword("password" + i);
  streamHandleEntityTmp.setAge(i * 10);
  streamHandleEntityTmp.setSex(i%2==0 ? "man" : "women");
  streamHandleEntityList.add(streamHandleEntityTmp);
  }
  streamHandleEntityList.stream().map(StreamHandleEntity::getName).List()).forEach(System.out :: println);  System.out.println("***********************map映射,多参数****************************");
  streamHandleEntityList.stream().map(item ->{
  StreamHandleDTO streamHandleDTO=new StreamHandleDTO();
  streamHandleDTO.Name());
  streamHandleDTO.Sex());
  return streamHandleDTO;
  }).List()).forEach(System.out :: println);
  Java
  System.out.println("***********************分组****************************");
  Map<String, List> groupRlt=streamHandleEntityList.stream().upingBy(Stream
HandleEntity::getSex));
  System.out.println(groupRlt);
  List ("man");
  System.out.println(manDatas);
  Java
  System.out.println("***********************结合****************************");
  String names=streamHandleEntityList.stream().map(StreamHandleEntity::getName).collect(Collectors.joining(" -- "));
  System.out.println(names);
  Java
  System.out.println("***********************排序****************************");
  integerList.stream().sorted().forEach(System.out :: println);
  System.out.println("***********************指定排序****************************");
  // 指定项正序
  List sortRlt=streamHandleEntityList.stream().sorted(Comparatorparing(StreamHandleEntity::getAge)).List());
  System.out.println(sortRlt);
  // 指定项倒序
  List
sortReverseRlt=streamHandleEntityList.stream().sorted(Comparatorparing(StreamHandleEntity::getAge).reversed()).List());  System.out.println(sortReverseRlt);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。