zoukankan      html  css  js  c++  java
  • 流API--原始类型流

    到目前为止,我们已经将整型收集到了一个Stream<Integer>的流中,不过将每个整数包装成相应对象显然是一个低效的做法,对于其他的基本类型也是一样,我们前面说过jdk提供包装类已经自动装箱和拆箱只是为了面向对象编程,我们不应该滥用。为此,流API提供了IntStream,LongStream,DoubleStream等类型,专门用来直接存储原始类型值,不必使用包装。注意的是,一共是有8个的基本类型,流API只提供了IntStream,LongStream,DoubleStream3个基本类型的流。


    要想创建一个IntStream,我们可以调用IntStream.of和Arrays.Stream方法,对于对象流,我们还可以使用静态的生成和迭代方法。除此以外,IntStream还拥有静态方法range和rangeClosed,用来产生步进为1的一个整数范围。当我们拥有一个对象流的时候,我们可以通过mapToInt,mapToLong或者MapToDouble方法将它转换为一个原始类型流。要将一个原始类型流转换成一个对象流,可以使用boxed方法。
    OK,上面的几个api通过一段代码演示:
    /**
     * @创建作者: LinkinPark
     * @创建时间: 2015年11月3日
     * @功能描述: 演示基本类型流的用法
     */
    public class Test
    {
    
    
    	public static void main(String[] args)
    	{
    		//使用IntStream的of方法来获取一个IntStream。
    		IntStream stream = IntStream.of(1, 2, 3);
    		//转换一个数组获得一个IntStream流
    		int[] array = { 1, 2, 3 };
    		IntStream stream1 = Arrays.stream(array, 0, 2);
    		//调用IntStream的range和rangeClosed方法获取流
    		IntStream.range(0, 100).forEach(System.out::println);//不包括上限
    		IntStream.rangeClosed(0, 100).forEach(System.out::println);//包括上限
    		System.out.println("注意流的延时性,不一定马上被执行");
    		
    		//将一个原始类型的流转换成一个对象流,可以使用boxed方法。
    		Stream<Integer> boxed = IntStream.range(0, 100).boxed();
    	}
    
    
    }


    总结:

    一般来说,原始类型流上的方法在与对象流上调用的方法类似,但是有以下几点显著的区别:

    1,toArray方法会返回一个原始类型的数组

    2,产生Optional结果的方法会返回一个OptionalInt,OptionalLong或者OptionalDouble类型。这些类与Optional类类似,但是他们没有get方法,而是用getAsInt,getAsLong和getAsDouble来代替。

    3,方法sum,average,max,min会返回总和,平均值,最大值和最小值。在对象流中没有定义这些方法

    4,summaryStatistics方法会产生一个intsummaryStatistics对象,可以同时获得原始类型流的总和,平均值,最大值和最小值。






  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/LinkinPark/p/5232956.html
Copyright © 2011-2022 走看看