Java8新特性——Stream的常用方法:filter,map,sorted
1.概念
Stream是Java8中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的的查找、过滤和映射等操作。使用Stream API对集合数据进行操作,就类似于使用SQL执行的数据库查询。简而言之,Stream API提供了一种高效且易于使用的处理数据的方式。
2.主要方法
①filter : 过滤流中的某些元素
public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(1); list.add(3); list.add(5); list.add(4); List<Integer> newList = list.stream().filter((n) -> { //筛选出大于等于4的元素 return n >= 4; }).collect(Collectors.toList()); //collect(Collectors.toList());的作用:收集 成一个list集合
System.out.println(newList); }
②map( ):
接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。
public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(1); list.add(3); list.add(5); list.add(4); List<Integer> newList = list.stream().filter((n) -> { return n >= 4; }).map((m)->{if(m==5){ //判断元素的值是否等于5,等于5则返回当前的值,否则返回0 return m; }else { return 0; }}).collect(Collectors.toList()); System.out.println(newList); }
③sorted(Comparator com):定制排序,自定义Comparator排序器
public static void main(String[] args) { List<Integer> list = new ArrayList<Integer>(); list.add(2); list.add(1); list.add(3); list.add(5); list.add(4); List<Integer> newList = list.stream().sorted((Integer a,Integer b)->{ return a-b; }).collect(Collectors.toList()); System.out.println(newList); }
前者跟后者比较为升序,后者跟前者比较为降序