一、stream介绍

参考:

Java 8 中的 Streams API 详解
 
Package java.util.stream
 
Java8初体验(二)Stream语法详解
 

二、例子

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream; /**
* Created by root on 16-5-19.
*/
public class StreamTest { /**
* 集合中不小于50的数输出出来[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun1() {
int[] a = {1, 20, 63, 58, 185, 60, 59, 20};
Arrays.stream(a).filter(x -> (x >= 50)).forEach(System.out::println);
} /**
* 利用stream自身属性判断下列集合是否全部大于50,[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static boolean fun2() {
int[] a = {1, 20, 63, 58, 185, 60, 59, 20};
return Arrays.stream(a).allMatch(p -> p > 50);
} /**
* 输出下列两个集合中的存在的相同字符串,[“qwer”,”asdf”,”zxcv”,”fgh”,”jum”,”rfv”],[“edc”,”zse”,”asdf”,”zxcv”,”yhnj”]
*/
private static void fun3() {
String[] s1 = {"qwer", "asdf", "zxcv", "fgh", "jum", "rfv"};
String[] s2 = {"edc", "zse", "asdf", "zxcv", "yhnj"};
Arrays.stream(s1).forEach(x -> {
Arrays.stream(s2).filter(y -> y.equals(x)).forEach(System.out::println);
});
} /**
* 将下列集合中的所有数字乘以10,并得到新集合[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun4() {
Integer[] nums = {1, 20, 63, 58, 185, 60, 59, 20};
Integer[] num = Arrays.stream(nums).map(n -> n * 10).toArray(Integer[]::new);
Arrays.stream(num).forEach(System.out::println);
} /**
* 取出下列集合中的第3到7个值,加上5,得到新的集合[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun5() {
Integer[] nums = {1, 20, 63, 58, 185, 60, 59, 20};
Integer[] num = Arrays.stream(nums).skip(2).limit(5).map(x -> x + 5).toArray(Integer[]::new);
Arrays.stream(num).forEach(System.out::println);
} /**
* 输出下列集合的最小值[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun6() {
int[] nums = {1, 20, 63, 58, 185, 60, 59, 20};
System.out.println(Arrays.stream(nums).min().getAsInt());
} /**
* 对下列集合进行从小到大排序[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun7() {
int[] nums = {1, 20, 63, 58, 185, 60, 59, 20};
Arrays.stream(nums).sorted().forEach(System.out::println);
} /**
* 集合合并:["qwe","dfg","sss"],["qwe","dfg","sss"],["qwe","dfg","sss"]
* 合并为["qwe","dfg","sss","qwe","dfg","sss","qwe","dfg","sss"]
*/
private static void fun8() {
String[] str1 = {"qwe", "dfg", "sss"};
String[] str2 = {"rty", "ghkj", "fghh"};
String[] str3 = {"gtb", "ssd", "dg"};
ArrayList<String> results = new ArrayList<>();
Stream.of(str1, str2, str3).forEach(p -> {
Stream.of(p).forEach(x -> results.add(x));
});
results.stream().forEach(System.out::println);
} /**
* 取出下列集合中大于50的,并得到新的集合[1, 20, 63, 58, 185, 60, 59, 20]
*/
private static void fun9() {
Integer[] nums = {1, 20, 63, 58, 185, 60, 59, 20};
Integer[] num = Arrays.stream(nums).filter(p -> p > 50).toArray(Integer[]::new);
Arrays.stream(num).forEach(System.out::println);
} /**
* 将下列名字转换为大写,再排序输出("Fred Edwards", "Anna Cox", "Deborah Patterson", "Ruth Torres", "Shawn Powell")
*/
private static void fun10() {
String[] str = {"Fred Edwards", "Anna Cox", "Deborah Patterson", "Ruth Torres", "Shawn Powell"};
Arrays.stream(str).map(p -> p.toUpperCase()).sorted().forEach(System.out::println);
} public static void main(String[] args) { fun8();
} }

java之stream(jdk8)的更多相关文章

  1. Java 8 Stream API

    Java 8 Stream API JDK8 中有两大最为重要的改变.第一个是 Lambda 式:另外 Stream API(java.util.stream.*) Stream 是 JDK8 中处理 ...

  2. Java学习:JDK8的新特性

    Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的 ...

  3. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...

  4. Java 8 Stream API Example Tutorial

    Stream API Overview Before we look into Java 8 Stream API Examples, let’s see why it was required. S ...

  5. Java笔记:Java 流(Stream)、文件(File)和IO

    更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...

  6. Java 8 Stream

    1.关于Java8部分新特性介绍 Java8的新特性很多,在此就不一一介绍了,这里只说一下我自己在工作用用得比较多的几点: 1.1.Lambda表达式 Lambda允许把函数作为一个方法的参数(函数作 ...

  7. [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念

    前言 本文为java.util.stream 包文档的译文 极其个别部分可能为了更好理解,陈述略有改动,与原文几乎一致 原文可参考在线API文档 https://docs.oracle.com/jav ...

  8. java 11 Stream 加强

    Stream 是 Java 8 中的新特性,Java 9 开始对 Stream 增加了以下 4 个新方法. 1) 增加单个参数构造方法,可为null Stream.ofNullable(null).c ...

  9. Java 8 新特性-菜鸟教程 (5) -Java 8 Stream

    Java 8 Stream Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种 ...

随机推荐

  1. Rsync

    转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [rsync实现网站的备份,文件的同步,不同系统的文件的同步, ...

  2. mysql user administration

    1. 为数据库databasename创建web用户 1.1 创建数据库 mysql> create database databasename; 1.2 为数据库创建用户 mysql> ...

  3. C#------DateTime自定义格式

    var text = Convert.ToString(DateTime.Now.ToString("yyyy/MM/dd"));

  4. IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法

    链接: http://www.cnblogs.com/mrma/p/3529859.html

  5. Linux开放1521端口允许网络连接Oracle Listene

    症状:1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动.  lsnrctl status  查看listener状态  lsnrctl s ...

  6. string find

    string类的查找函数: ) const;//从pos开始查找字符c在当前字符串的位置 ) const;//从pos开始查找字符串s在当前串中的位置 int find(const char *s, ...

  7. matlab 中txt文件(含字符及数值)处理

    matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...

  8. MySQL学习笔记——存储过程

  9. Java自定义异常类

    用户可以根据自己的需要定义自己的异常类,定义异常类只需要继承Exception类即可 //================================================= // Fi ...

  10. MySQL 随机取数据效率问题

    本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美文. 最近由于需要大概研究了一下MYSQL ...