Steam流基本操作

Stream流

一、Stream流的生成方式

  1. Collection体系的集合可以使用默认方法stream()生成流

    1. default Stream<E> stream()
    List<String> list = new ArrayList<>();
    Stream<String> listStream = list.stream();
    
    Set<String> set = ne HashSet<>();
    Stream<String> setStream = set.stream();
    
  2. Map体系的集合间接的生成流

    Map<String, Integer> map = new HashMap<>();
    Stream<String> keyStream = map.keySet().stream();
    Stream<Integer> valueStream = map.values().stream();
    Stream<Map.Entry<String,Integer>> entryStream = map.entrySet.stream();
    
  3. 数组可以通过Stream接口的静态方法of(T ... values)生成流

    String strArray = {"hello", "world", "java"};
    Stream<String> str1 = Stream.of(strArray);
    Stream<Integer> str2 = Stream.of(10, 20, 30); 
    

二、Stream流常见中间方法

方法 作用
Stream<T> filter(Predicate predivate) 用于对流中的数据进行过滤
Stream<T> limit(long maxSize) 返回此流中的元素组成的流,截取前指定参数个数的数据
Stream<T> skip(long n) 跳过指定参数个数的数据,返回由该流的剩余元素组成的流
static <T> Stream<T> concat(Stream a, Stream b) 合并a和b两个流为一个流
Stream<T> distinict() 返回由该流不同的元素(equals())组成的流
Stream<T> sorted() 返回由此流的元素组成的流,根据自然顺序排序
Stream<T> sorted(Comparator comparator) 返回由该元素组成的流,根据提供的Comparator进行排序
<R> Stream<R> map(Function mapper) 返回由给定函数应用于此流的元素的结果组成的流
IntStream mapToInt(ToIntFunction mapper) 返回一个IntStream其中包含将给定函数应用于此流的元素的结果

三、Stream流常见终结操作方法

方法 作用
void forEach(Consumer action) 对此流的每个元素执行操作
long count() 返回此流中的元素数

四、Stream流的收据操作

1.收集方法

  • R collect(Collector collector)
  • 但是这个收集方法的参数是一个Collector接口

2.工具类Collectors

  • public static <T> Collector toList():把元素收集到List集合
  • public static <T> COllector toSet():把元素收集到Set集合
  • public static Collector toMap(Fuction keyMapper, Fuction valueMapper):把元素收集到Map集合
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容