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 : 流的更多相关文章

  1. 【Java8流】使用学习

    [Java8流]使用学习 ============================================= 1.删除子目录及文件 ============================== ...

  2. Java8 流式 API(`java.util.stream`)

    熟悉 ES6 的开发者,肯定对数组的一些方法不是很陌生:map.filter 等.在对一组对象进行统一操作时,利用这些方法写出来的代码比常规的迭代代码更加的简练.在 C♯ 中,有 LINQ 来实现.那 ...

  3. 公子奇带你进入Java8流的世界(一)

    在说流之前,我们先来看看集合,为什么呢?作为Java8中的新成员,它和集合有很多相似之处,同时它们也是可以互相转化的.集合不仅仅是Java语言,任何一门高级开发语言都有集合的概念,集合顾名思义,就是很 ...

  4. 公子奇带你进入Java8流的世界(二)

    在上一篇中我们带领大家简单的了解流的概念及使用场景,本节我们就来好好的介绍流的常见用法. 一.筛选和切片 对于一串流,我们有时需要取出我们需要的流中某些元素,主要是通过谓词筛选.看代码: 首先定义一个 ...

  5. java8 流操作

    0  创建流 public void test1(){ List<String> list = new ArrayList<>(); Stream<String> ...

  6. JAVA8流操作

    * Stream 的三个操作步骤: * 1创建Stream * 2中间操作 * 3终止操作 package airycode_java8.nice6; import airycode_java8.ni ...

  7. java8流式编程(一)

    传送门 <JAVA8开发指南>为什么你需要关注 JAVA8 <Java8开发指南>翻译邀请 Java8初体验(一)lambda表达式语法 Java8初体验(二)Stream语法 ...

  8. java8 流式编程

    为什么需要流式操作 集合API是Java API中最重要的部分.基本上每一个java程序都离不开集合.尽管很重要,但是现有的集合处理在很多方面都无法满足需要. 一个原因是,许多其他的语言或者类库以声明 ...

  9. java8 流操作 好文网址

    api 各方法详解(很不错!) http://blog.51cto.com/turnsole/2093185 api 各方法 简介: https://www.cnblogs.com/guguli/p/ ...

随机推荐

  1. [Shell]Docker remote api未授权访问漏洞(Port=2375)

    0x01 简介 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. Docke ...

  2. 沸腾换热UDF【转载】

    #include "udf.h"    //包括常规宏 #include "sg_mphase.h"    // 包括体积分数宏 CVOF(C,T) #defi ...

  3. Kafka的Topic、Partition和Message

    Kafka的Topic和Partition Topic Topic是Kafka数据写入操作的基本单元,可以指定副本 一个Topic包含一个或多个Partition,建Topic的时候可以手动指定Par ...

  4. OpenGL ES: (4) EGL API详解 (转)

    上一节我们初步学习了 OpenGL ES.EGL.GLSL 的相关概念,了解了它们的功能,以及它们之间的关联.我们知道了 EGL 是绘制 API(比如 OpenGL ES)与 底层平台窗口系统之间的接 ...

  5. [转]JVM调优总结 -Xms -Xmx -Xmn -Xss

    Xms 是指设定程序启动时占用内存大小.一般来讲,大点,程序会启动的快一点,但是也可能会导致机器暂时间变慢. Xmx 是指设定程序运行期间最大可占用的内存大小.如果程序运行需要占用更多的内存,超出了这 ...

  6. 安卓终端-Termux

    Termux是一个 Android 终端模拟器以及提供 Linux 环境的应用程序.跟许多其他应用程序不同,无需 root 设备也无需进行设置.它是开箱即用的!它会自动安装好一个最基本的 Linux ...

  7. .frm文件怎么导入到数据库

    如题想搞个私服游戏,但是数据库文件按文档的操作方法行不通.只能自行导入. 其实.frm文件就是mysql表结构文件,你拷贝data那一块的文件到你电脑安装的mysql的data文件下就行了. 一.首先 ...

  8. 深入学习c++--多线程编程(一)

    1. 简介 2. 线程使用 2.1 demo #include <iostream> #include <thread> #include <future> usi ...

  9. php 验证rsa公钥和私钥是否正确

    <?php /** * RSA加密 * * @param string $data 待加密数据 * @param string $publicKey 公钥 * @return string|fa ...

  10. layui select渲染获取选中的option

    关键代码如下: form.on('select(groupCode)', function(data){ console.log($(data.elem).find("option:sele ...