简介
Stream API借助前面介绍的java lambda表达式来进行集合数据处理。 下面举些常用的例子来熟悉下。forEach
stream方法不调用也可以使用forEachArrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }).forEach(System.out::println);
filter
集合内数据过滤Arrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }).stream().filter(x -> x > 3.0).forEach(System.out::println);
map
从原数据(list, set)生成新数据(list, set)Arrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }).stream().map(x -> x * x).forEach(System.out::println);
collect
用collect取代for这样的语法 collect(supplier(for循环外部的变量), accumulator(for循环内部处理), combiner(并行处理时,supplier汇总处理))使用collectorsArrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }).stream().collect(HashMap::new, (map, x) -> map.put(x, x * x), (map1, map2) -> map1.forEach(map2::put)).entrySet().forEach(System.out::println);
Arrays.asList(new Double[] { 1.0, 2.1, 3.2, 1.0, 5.4 }).stream().collect(Collectors.toSet()).forEach(System.out::println);
mapTo[*]等
使用mapTo[数值类型]流,求最小,最大,平均数Arrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }).stream().mapToDouble(x -> x).average().ifPresent(System.out::println)
求标准方差
List<Double> sample = Arrays.asList(new Double[] { 1.0, 2.1, 3.2, 4.3, 5.4 }); double mu = sample.stream().mapToDouble(x -> x).average().getAsDouble(); double siguma = Math.sqrt(sample.stream().map(x -> Math.pow(x - mu, 2.0)).mapToDouble(x -> x).average().getAsDouble()); System.out.println(siguma);
查看原文:https://www.huuinn.com/archives/326
更多技术干货:风匀坊
关注公众号:风匀坊
java stream api介绍
最新推荐文章于 2024-08-22 21:27:15 发布
本文通过实战案例介绍了Java Stream API的基础用法,包括forEach遍历、filter过滤、map映射、collect收集等操作,并展示了如何利用collectors进行数据聚合及计算标准方差。
摘要由CSDN通过智能技术生成