java8 : 流
package day02.com.offcn.test; import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
import java.util.stream.*; /**
* @author: CC
* @date: 2019/9/8
*/
public class 流 {
//流的创建
public static void main(String[] args) throws IOException {
//由值创建流,静态方法Stream.of
Stream<String> stream = Stream.of("JAVA 8","Lambdas","In","Action"); //由数组创建流, 静态方法Arrays.stream
int[] numbers = {3,4,5,6,11,13};
int sum = Arrays.stream(numbers).sum(); //由文件生成流
Stream<String> lines = Files.lines(Paths.get("D:/aa.txt"), Charset.defaultCharset());
long sum1 = lines.count(); //由函数生成流,生成无限流
//迭代
Stream.iterate(0,n->n+2)
.limit(10)
.forEach(System.out::println);
//生成
Stream.generate(Math::random)
.map(aDouble -> aDouble*100)
.limit(10)
.forEach(System.out::print); //collection构建流,集合流
Collection collection = new HashSet();
collection.stream(); // 中间操作(intermediate)主要有以下方法(此类型的方法返回的都是Stream对象):
// map (mapToInt, flatMap 等)、 filter、 distinct、 sorted、 peek、
// limit、 skip、 parallel、 sequential、 unordered List<String> list = Arrays.asList("aaa","ddd","bbb","ccc","a2a","d2d","b2b","c2c","a3a","d3d","b3b","c3c"); List list1 = list.stream()
.filter(s -> s.equals("aaa"))
.map(s -> "df")
.distinct()
.limit(10)
.skip(5)
.mapToInt(value -> 10)
.mapToDouble(value -> 0.1)
.mapToLong(value -> 23)
.mapToObj(value -> "dsfs")
.sorted()
.parallel()
.peek(System.out::print)
.collect(Collectors.toList());
//留意装箱。自动装箱和拆箱操作会大大降低性能。Java 8中有原始类型流(IntStream、
//LongStream、DoubleStream)来避免这种操作,但凡有可能都应该用这些流。 Object[] obj = list1.stream().toArray();
Arrays.asList(obj).stream().max((o1, o2) -> 0);
Arrays.asList(obj).stream().min((o1, o2) -> 0);
boolean boo = Arrays.asList(obj).stream().allMatch(o -> true);
Arrays.asList(obj).stream().forEach(System.out::print);
Arrays.asList(obj).stream().count();
Arrays.asList(obj).stream().iterator();
// 终端操作(terminal)主要有以下方法:
// forEach、 forEachOrdered、 toArray、 reduce、 collect、
// min、 max、 count、 anyMatch、 allMatch、 noneMatch、
// findFirst、 findAny、 iterator
}
}
java8 : 流的更多相关文章
- 【Java8流】使用学习
[Java8流]使用学习 ============================================= 1.删除子目录及文件 ============================== ...
- Java8 流式 API(`java.util.stream`)
熟悉 ES6 的开发者,肯定对数组的一些方法不是很陌生:map.filter 等.在对一组对象进行统一操作时,利用这些方法写出来的代码比常规的迭代代码更加的简练.在 C♯ 中,有 LINQ 来实现.那 ...
- 公子奇带你进入Java8流的世界(一)
在说流之前,我们先来看看集合,为什么呢?作为Java8中的新成员,它和集合有很多相似之处,同时它们也是可以互相转化的.集合不仅仅是Java语言,任何一门高级开发语言都有集合的概念,集合顾名思义,就是很 ...
- 公子奇带你进入Java8流的世界(二)
在上一篇中我们带领大家简单的了解流的概念及使用场景,本节我们就来好好的介绍流的常见用法. 一.筛选和切片 对于一串流,我们有时需要取出我们需要的流中某些元素,主要是通过谓词筛选.看代码: 首先定义一个 ...
- java8 流操作
0 创建流 public void test1(){ List<String> list = new ArrayList<>(); Stream<String> ...
- JAVA8流操作
* Stream 的三个操作步骤: * 1创建Stream * 2中间操作 * 3终止操作 package airycode_java8.nice6; import airycode_java8.ni ...
- java8流式编程(一)
传送门 <JAVA8开发指南>为什么你需要关注 JAVA8 <Java8开发指南>翻译邀请 Java8初体验(一)lambda表达式语法 Java8初体验(二)Stream语法 ...
- java8 流式编程
为什么需要流式操作 集合API是Java API中最重要的部分.基本上每一个java程序都离不开集合.尽管很重要,但是现有的集合处理在很多方面都无法满足需要. 一个原因是,许多其他的语言或者类库以声明 ...
- java8 流操作 好文网址
api 各方法详解(很不错!) http://blog.51cto.com/turnsole/2093185 api 各方法 简介: https://www.cnblogs.com/guguli/p/ ...
随机推荐
- [Shell]Docker remote api未授权访问漏洞(Port=2375)
0x01 简介 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. Docke ...
- 沸腾换热UDF【转载】
#include "udf.h" //包括常规宏 #include "sg_mphase.h" // 包括体积分数宏 CVOF(C,T) #defi ...
- Kafka的Topic、Partition和Message
Kafka的Topic和Partition Topic Topic是Kafka数据写入操作的基本单元,可以指定副本 一个Topic包含一个或多个Partition,建Topic的时候可以手动指定Par ...
- OpenGL ES: (4) EGL API详解 (转)
上一节我们初步学习了 OpenGL ES.EGL.GLSL 的相关概念,了解了它们的功能,以及它们之间的关联.我们知道了 EGL 是绘制 API(比如 OpenGL ES)与 底层平台窗口系统之间的接 ...
- [转]JVM调优总结 -Xms -Xmx -Xmn -Xss
Xms 是指设定程序启动时占用内存大小.一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢. Xmx 是指设定程序运行期间最大可占用的内存大小.如果程序运行需要占用更多的内存,超出了这 ...
- 安卓终端-Termux
Termux是一个 Android 终端模拟器以及提供 Linux 环境的应用程序.跟许多其他应用程序不同,无需 root 设备也无需进行设置.它是开箱即用的!它会自动安装好一个最基本的 Linux ...
- .frm文件怎么导入到数据库
如题想搞个私服游戏,但是数据库文件按文档的操作方法行不通.只能自行导入. 其实.frm文件就是mysql表结构文件,你拷贝data那一块的文件到你电脑安装的mysql的data文件下就行了. 一.首先 ...
- 深入学习c++--多线程编程(一)
1. 简介 2. 线程使用 2.1 demo #include <iostream> #include <thread> #include <future> usi ...
- php 验证rsa公钥和私钥是否正确
<?php /** * RSA加密 * * @param string $data 待加密数据 * @param string $publicKey 公钥 * @return string|fa ...
- layui select渲染获取选中的option
关键代码如下: form.on('select(groupCode)', function(data){ console.log($(data.elem).find("option:sele ...