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/ ...
随机推荐
- js中的那些遍历
说到遍历,首先想到的是数组的遍历,方法不要太多,比如 for, forEach,map,filter,every,some等 下面来看下,用法 首先 定义一个数组: 1. for循环,需要知道数组的长 ...
- 06 、指令跳转:原来if...else就是goto
写好的代码编译成指令之后,一般正常流程是一条一条的顺序执行的.但是在程序中总会用到if...else这样的条件判断语句.while和for循环语句,还有函数或者过程调用,所以遇到这些程序编译的指令时是 ...
- ciscn2019华北赛区半决赛day1web5CyberPunk
刚比赛完的一段时间期末考试云集,没有时间复现题目.趁着假期,争取多复现几道题. 复现平台 buuoj.cn 解题过程 首先进入题目页面 看起来没有什么特别的,就是一个可以提交信息的页面.查看响应报文也 ...
- java实现获取当前年、月、日 、小时 、分钟、 秒、 毫秒
转载 : https://blog.csdn.net/qq_36652619/article/details/85621020 package com.app.test; import java.te ...
- openwrt共享打印机需要安装哪几个文件
opkg updateopkg install luci-app-p910ndopkg install kmod-usb-printer
- CMU Database Systems - Storage and BufferPool
Database Storage 存储分为volatile和non-volatile,越快的越贵越小 那么所以要解决的第一个问题就是,如果尽量在有限的成本下,让读写更快些 意思就是,尽量读写volat ...
- 表单在ios下输入框必须重压或长按才能唤起软键盘
解决方案: 一.在node_module里找到fastClick文件,然后找到focus方法,加一句focus方法即可解决:FastClick.prototype.focus = function(t ...
- Windows 操作系统 快捷键
窗口放大缩小: + ↑↓ 最小化窗口: ALT + Esc 关闭窗口: Alt + F4 搜索功能: + 直接输入搜索内容 打开文件管理器: + E 在文件管理器中切换: Tab
- Dart介绍和环境搭建
/* Dart介绍: Dart是由谷歌开发的计算机编程语言,它可以被用于web.服务器.移动应用 和物联网等领域的开发. Dart诞生于2011年,号称要取代JavaScript.但是过去的几年中一直 ...
- ISO/IEC 9899:2011 条款6.5.8——关系操作符
6.5.8 关系操作符 语法 1.relational-expression: shift-expression relational-expression < shift-expr ...