[Java 8 Lambda] java.util.stream 简单介绍

包结构例如以下所看到的:

这个包的结构非常easy,类型也不多。

BaseStream接口

全部Stream接口类型的父接口,它继承自AutoClosable接口,定义了一些全部Stream都具备的行为。

由于继承自AutoClosable接口,所以全部的Stream类型都能够用在Java
7中引入的try-with-resource机制中,以达到自己主动关闭资源的目的。实际上,仅仅有当Stream是通过Socket,Files
IO等方式创建的时候,才须要关闭它。对于来自于Collections,Arrays的Stream,是不须要关闭的。

Stream接口

定义了众多Stream应该具有的行为。

最典型的比方filter方法族,map方法族以及reduce方法族,这三个方法是FunctionalProgramming的标志。典型的Map-Filter-Reduce模式便是依靠这三个操作来定义的。

与此同一时候,Stream接口还定义了一些用于创建Stream的static方法,创建的Stream能够是有限的,也能够是无限的。有限的非常好理解,而无限Stream是一个新概念,通过generate方法或者iterate方法实现。

IntStream, LongStream
以及 DoubleStream
接口

基于原生类型int, long以及double的Stream。提供了众多类型相关的操作。

典型的比如,sum方法,min/max方法,average方法等。这些方法都是Reduce操作的详细实现。

Collect接口

对于Reduce操作的抽象。此接口中定义了经常使用的Reduce操作。

当中定义的Reduce操作能够通过串行或者并行的方式进行实现。BaseStream接口中的parallel,sequential,unordered方法提供的高层API使并发程序设计变得很简洁。

毕竟,Map-Filter-Reduce模式的灵魂就在于并行计算。

Collectors

提供了众多能够直接使用的Reduce操作。

典型的比方groupingBy以及partitioningBy操作。它们都能够通过串行或者并行的方式进行实现。比方,groupingByConcurrent会使用并行的方式进行grouping操作。

StreamSupport

提供了底层的一些用于操作Stream的方法,假设不须要创建自己的Stream,一般不须要使用它。

[Java 8 Lambda] java.util.stream 简单介绍

时间: 2024-08-27 23:11:56

[Java 8 Lambda] java.util.stream 简单介绍的相关文章

[Java 8 Lambda] java.util.stream 简介

包结构如下所示: 这个包的结构很简单,类型也不多. BaseStream接口 所有Stream接口类型的父接口,它继承自AutoClosable接口,定义了一些所有Stream都具备的行为. 因为继承自AutoClosable接口,所以所有的Stream类型都可以用在Java 7中引入的try-with-resource机制中,以达到自动关闭资源的目的.实际上,只有当Stream是通过Socket,Files IO等方式创建的时候,才需要关闭它.对于来自于Collections,Arrays的S

Java之Lambda表达式和Stream类简单例子

开心一笑 提出问题 java的lambda表达式和Stream如何使用??? 解决问题 Lambda表达式的语法 基本语法: (parameters) -> expression 或 (parameters) ->{ statements; } 看例子学习吧! 例一:定义一个AyPerson类,为之后的测试做准备. package com.evada.de; import java.util.Arrays; import java.util.List; class AyPerson{ priv

java中equals以及==的用法(简单介绍)

简单介绍 equals方法是java.lang.Object类的方法 有两种用法说明: 一.对于字符串变量来说,使用"=="和"equals()"方法比较字符串时,其比较方法不同. 1."=="比较两个变量本身的值,即两个对象在内存中的首地址. (java中,对象的首地址是它在内存中存放的起始地址,它后面的地址是用来存放它所包含的各个属性的地址,所以内存中会用多个内存块来存放对象的各个参数,而通过这个首地址就可以找到该对象,进而可以找到该对象的各

Java 8 lambda表达式引入及简单使用

引入 eclipse http://www.eclipse.org/downloads/packages/eclipse-standard-432/keplersr2 Help -> EclipseMarketplace -> 搜索Java 8 Kepler ->Java 8 support for eclipse Kepler SR2 安装完成后需要重启 Android Studio 在project的build.gradle文件中添加 buildscript { dependenci

java集合第一节,List简单介绍

List接口是继承Collection接口,所以Collection集合中有的方法,List集合也继承过来. package 集合; import java.util.ArrayList; import java.util.Iterator; /* * List接口特点: * 1.有序的集合,存储顺序和取出顺序一致 * 2.有索引,包含索引方法 * 3.允许存储重复元素 * 4.List接口带的方法特有 * 注意事项:操作索引的时候,一定要防止索引越界异常 * IndexOutBoundExce

java自带数据库Derby的简单介绍

前言: 如果你急需一个数据库来测试你的sql,那么java自带这个轻量级的数据库是个不错的选择. 正文: Java Derby的执行文件在C:\Program Files\Java\jdk1.8.0_91\db\bin目录下 在该目录下可以使用startNetworkServer.bat文件启动数据库 如果启动过程中报日志文件无法创建,可以给当前目录调整成完全控制权限. 另外,在该数据库创建一个自己的私有库,可以通过使用ij工具,执行如下命令创建 connect 'jdbc:derby://lo

java注解(Annotation)的简单介绍

注解你可以理解为一个特殊的类,或者接口其自定义个格式形如 public @interface 注解名(){ //注解的属性,特别提醒当注解的属性为value时,在对其赋值时,可以不写value,而直接写上值即可. } 下面一个例子讲述了注解的基本应用:(这个例子中A代表一个注解类,写一个D注解的目的是说明一个注解类中可以有注解这个属性.B代表应用了注解类的类,C代表对应用了注解类的类进行反射操作的类.) 代码如下://定义一个注解D(D的作用只是为了说明A中可以有一个注解的属性) package

java自定义注解以及注解的简单介绍

jdk自带注解 @Override 覆盖父类的方法 @Deprecated  注解一个方法 表示该方法过时了 @Suppvisewarnings     @SupressWarnings("deprecation")//忽略警告 常见第三方注解 Spring: @Autowired   自动生成一个类的实例 @Service @Repository Mybatis: @InsertProvider @UpdateProvider @Options 注解的分类 运行机制化分 源码注解 注

java GUI编程(swing)之一 swing简单介绍

swing 是由sun公司开发的一个gui框架,一开始sun是开发了awt框架.但是awt框架 存在lcd问题.因此sun在awt的基础上继续开发出了swing. swing是继承了awt的类 swing 常用组件: text 文本组件 menus 菜单组件 widgets 小控件组件 top-level-windows顶层窗口管理 sub-windows 子窗口 原文地址:https://www.cnblogs.com/SunshineLittleCat/p/8279905.html