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/ ...
随机推荐
- IDEA控制台乱码终极解决方案
1. 问题描述 由于本机的IDEA 2019.1出现了无法连接插件商店和Spring Boot模板的问题,就重装了了最新的IDEA 2019.2.4版本,使用了一段时间以后,没有改任何的配置,控制台的 ...
- #C++初学记录(贪心算法#二分查找)
D - Aggressive cows 农夫 John 建造了一座很长的畜栏,它包括N (2 <= N <= 100,000)个隔间,这些小隔间依次编号为x1,...,xN (0 < ...
- ActiveMq 本地安装及启动(Windows)
首先下载MQ的安装包 http://activemq.apache.org/download.html 1.点击最新版本的ActiveMQ的 2.这里有窗户版本和Linux的的版本,这里我们选择窗口版 ...
- https://software.intel.com/sites/landingpage/pintool/docs/97998/Pin/html/
https://software.intel.com/sites/landingpage/pintool/docs/97998/Pin/html/ http://www.brendangregg. ...
- Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取
Tensorflow 2 Cifar10离线数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com 查 ...
- Oracle数据库启动报错,找不到数据文件(ORA-01157和ORA-01110)
数据库报了ORA-01157和ORA-01110错误,提示找不到一个数据文件. 1.启动数据库报错 在启动数据库过程中,报了ORA-01157和ORA-01110错误,提示找不到数据文件. SQL&g ...
- Microsoft OA
Given a string S consisting of N lowercase letters, return the minimum number of letters that must b ...
- Python3基础 函数 参数为list可变类型时,使用append会影响到外部实参
Python : 3.7.3 OS : Ubuntu 18.04.2 LTS IDE : pycharm-community-2019.1.3 ...
- append()、appendChild() 和 innerHTML 的区别
概念和区别:append() 可以同时传入多个节点或字符串,没有返回值: 据说 append 还是试用期的方法,有兼容问题,(但我用了暂时火狐,谷歌,iE都能使用). https://develope ...
- WPF 问题 PresentationCore.dll!System.Windows.Media.Composition.DUCE.Channel.SyncFlush() 分析
错误信息: 没有足够的内存继续执行程序 在 System.Windows.Media.Composition.DUCE.Channel.SyncFlush() 在 System.Windows.Int ...