zoukankan      html  css  js  c++  java
  • java中Optional和Stream流的部分操作

    package test9;
    
    import java.util.DoubleSummaryStatistics;
    import java.util.Optional;
    import java.util.stream.Collectors;
    import java.util.stream.Stream;
    
    public class StreamTest {
        public static void main(String[] args) {
            Optional<Integer> optional = Optional.of(123);
    
            System.out.println("创建一个Optional对象的方式一:" + optional.get());
    
            Optional<Integer> optional2 = Optional.ofNullable(null);
            System.out.println("Optional操作:对象是否为空:" + !optional2.isPresent());
    
            Optional<Double> result = Optional.of(4.0).flatMap(StreamTest::squareRoot).flatMap(StreamTest::inverse);
            System.out.println("Optional操作:flatMap可以循环调用其中的方法,4.0的平方根处以2是:" + result.get());
    
            String str = Stream.of("一", "二", "三", "四", "五", "六").collect(Collectors.joining(","));// joining参数可为空,即结果中将没有","
            System.out.println("流操作:将此流中的所有元素组合成一条字符串返回:	" + str);
    
            DoubleSummaryStatistics summary = Stream.of(12, 10, 54, 8, 132, 589, 4)
                    .collect(Collectors.summarizingDouble(Integer::intValue));
            System.out.println("流操作:最大值:" + summary.getMax() + "	最小值:" + summary.getMin() + "	平均值:" + summary.getAverage()
                    + "	总和:" + summary.getSum() + "	元素的个数:" + summary.getCount());
        }
    
        // 计算平方根
        private static Optional<Double> squareRoot(Double x) {
            return x < 0 ? Optional.empty() : Optional.of(Math.sqrt(x));
        }
    
        private static Optional<Double> inverse(Double x) {
            return x == 0 ? Optional.empty() : Optional.of(x / 2);
        }
        
        
    }

    打印结果:

    创建一个Optional对象的方式一:123


    Optional操作:对象是否为空:true


    Optional操作:flatMap可以循环调用其中的方法,4.0的平方根处以2是:1.0


    流操作:将此流中的所有元素组合成一条字符串返回: 一,二,三,四,五,六


    流操作:最大值:589.0 最小值:4.0 平均值:115.57142857142857 总和:809.0 元素的个数:7

  • 相关阅读:
    bzoj 3527: [Zjoi2014]力
    bzoj 1797: [Ahoi2009]Mincut 最小割
    bzoj 1028: [JSOI2007]麻将
    bzoj 1019: [SHOI2008]汉诺塔
    bzoj 1023: [SHOI2008]cactus仙人掌图
    bzoj 3289: Mato的文件管理
    bzoj 4034: [HAOI2015]T2
    bzoj 1218: [HNOI2003]激光炸弹
    bzoj 2431: [HAOI2009]逆序对数列
    The full stack trace of the root cause is available in the Apache Tomcat/8.0.8 logs.
  • 原文地址:https://www.cnblogs.com/li-yan-long/p/10339143.html
Copyright © 2011-2022 走看看