java新特性stream
java新特性stream,也称为流式编程。
在学习stream之前先了解一下java内置的四大函数
第一种函数式函数,后面是lambda表达式写法
/*Function<String,Integer> function = new Function<String, Integer>() {
@Override
public Integer apply(String s) {
return null;
}
};*/
//函数式 有请求参数和返回值
Function<String, Integer> function = s -> {
return 1024;
};
System.out.println(function.apply("函数式"));
第二种布尔型函数(断定型参数)
/* Predicate<String> predicate = new Predicate<String>() {
@Override
public boolean test(String s) {
return false;
}
};*/
//布尔型函数(断定型参数) 有请求参数和返回boolean值
Predicate<String> predicate = s -> {
return s.isEmpty();
};
System.out.println(predicate.test("sss"));
第三种消费型函数
/* Consumer<String> consumer = new Consumer<String>() {
@Override
public void accept(String s) {
}
};*/
//消费型函数 有请求参数和无返回值
Consumer<String> consumer = s -> {
System.out.println(s);
};
consumer.accept("java ");
第四种
/*Supplier<String> supplier = new Supplier() {
@Override
public String get() {
return null;
}
};*/
//供给型函数 无请求参数和有返回值
Supplier<String> supplier = ()-> {
return "hello";
};
System.out.println(supplier.get());
}
我们再看一下stream常用方法:
filter:里面传入一个Predicate布尔型函数,里面返回布尔值
Stream<T> filter(Predicate<? super T> predicate)
forEach:里面传入Consumer消费型函数,有请求参数和无返回值
void forEach(Consumer<? super T> action)
map:里面传入Function函数式 有请求参数和返回值
<R> Stream<R> map(Function<? super T,? extends R> mapper)
generate:里面传入Supplier供给型函数 无请求参数和有返回值
static <T> Stream<T> generate(Supplier<T> s) 待更。
java新特性stream的更多相关文章
- JDK1.8新特性——Stream API
JDK1.8新特性——Stream API 摘要:本文主要学习了JDK1.8的新特性中有关Stream API的使用. 部分内容来自以下博客: https://blog.csdn.net/icarus ...
- Java8 新特性 Stream 无状态中间操作
无状态中间操作 Java8 新特性 Stream 练习实例 中间无状态操作,可以在单个对单个的数据进行处理.比如:filter(过滤)一个元素的时候,也可以判断,比如map(映射)... 过滤 fil ...
- Java8 新特性 Stream() API
新特性里面为什么要加入流Steam() 集合是Java中使用最多的API,几乎每一个Java程序都会制造和处理集合.集合对于很多程序都是必须的,但是如果一个集合进行,分组,排序,筛选,过滤...这些操 ...
- 主流的单元测试工具之-JAVA新特性-Annotation 写作者:组长 梁伟龙
1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...
- Hi java新特性
java新特性 1995.5.23 java语言 1996 jdk1.0 250个类在API 主要用在桌面型应用程序1997 jdk1.1 500 图形用户界面编程1998 jdk1.2 2300 J ...
- 主流的单元测试工具之-JAVA新特性-Annotation
1:什么是Annotation?Annotation,即“@xxx”(如@Before,@After,@Test(timeout=xxx),@ignore),这个单词一般是翻译成元数据,是JAVA的一 ...
- Java8 新特性 Stream 非短路终端操作
非短路终端操作 Java8 新特性 Stream 练习实例 非短路终端操作,就是所有的元素都遍厉完,直到最后才结束.用来收集成自己想要的数据. 方法有: 遍厉 forEach 归约 reduce 最大 ...
- Java8 新特性 Stream 短路终端操作
短路终端操作 Java8 新特性 Stream 练习实例 传入一个谓词,返回传为boolean,如果符合条件,则直接结束流. 匹配所有 allMatch 任意匹配 anymMatch 不匹配 none ...
- Java基础学习总结(55)——java8新特性:stream
java作为开发语言中的元老已经度过了很多年,最新的java8为我们带来了一些新特性,这些特性可以在以后的工作中为我们的开发提供更多的便捷,现在就让我们看看最新的函数式编程风格怎么在实际的开发中使用. ...
随机推荐
- [2019HDU多校第一场][HDU 6580][C. Milk]
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6580 题目大意:\(n\times m\)大小的方格上有\(k\)瓶水,喝完每瓶水都需要一定的时间.初 ...
- maven工程中dubbo与spring整合
1)引入相应jar包 <!-- 引入dubbo服务 start--> <dependency> <groupId>com.alibaba</groupId&g ...
- Jenkins 自动化构建
def pipeId = 1130561944231279390 def pipeLogId def isTagOrBranch def tagOrBranch def imageId def add ...
- 002_linux驱动之_register_chrdev注册字符设备
(一)解析:register_chrdev函数和unregister_chrdev函数 (二)register_chrdev函数原型 int register_chrdev(unsigned int ...
- python print import使用
>>> print("aaaa","bbbb")aaaa bbbb>>> print(1, 2, 3)1 2 3 为模块提供 ...
- learning armbian steps(5) ----- armbian 构建arm rootfs
基于learning armbian step(4) 的总结,我们来实践一下,接下来的会把整个构建的log都贴出来: vmuser@vmuser-virtual-machine:~/qemu-arm$ ...
- redis数据存储--C++连接redis
一.下载的是Redis Windows版本:下载地址:https://github.com/microsoftarchive/redis:解压到:E:\Software\redis-3.0: 二.用V ...
- CONTINUE...? ZOJ - 4033
CONTINUE...? ZOJ - 4033 题解:先计算一下总数sum是否是偶数,如果不是则不能分出来,如果是则从后面开始分,先把人分到1.3组,分完sum / 2这些人,如果恰好能够分成零,那么 ...
- c++问题集合
1.对于程序未运行和运行后的代码段到底存储什么? 2.编写程序时为什么先申请变量后使用? 3.malloc本质到底分配了什么?谁赋给的? 4.程序在系统上是怎么运行起来的? 5.当我们双击一个程序运行 ...
- Win内核原理与实现学习笔记3-windows系统结构
1.概述 1.1windows采用了双模式(dual mode)结构来保护操作系统本身,以避免被应用程序的错误而波及.操作系统核心运行在内核模式(kernel mode)下,应用程序的代码运行在用户模 ...