一、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. [USACO2009 NOV GOLD]奶牛的图片

    校内题,不给传送门了. 以前做完NOIp2013的火柴排队那道题后,当时很担心NOIp会出那种题,因为贪心的规则能不能看出来真的要看运气.但是这类题做多了后发现其实那道题的规则其实是很多题都已经用到了 ...

  2. what's the CRSF ??

    What's CSRF attack ? CSRF(" Cross-site request forgery!" 跨站请求伪造)    用实例讲原理: 我们假设一个银行网站A,一个 ...

  3. sql练习

  4. DIY(码表)制作实验

    代码: #include<reg52.h>typedef unsigned char u8;typedef unsigned int  u16;/********端口定义********* ...

  5. PHP责任链设计模式

    <?php //责任链设计模式 /** * 每个对象,储存着对自己上级的引用, * 如果自己处理不了,交给上一级. */ class board{ protected $power=1; pro ...

  6. Vim以及Terminal 配色方案---"Solarized"配色

    linux用户给vim 以及terminal的配色方案---Solarized配色 官网地址:http://ethanschoonover.com/solarized 看这配色:八卦乾坤,赏心悦目,高 ...

  7. centos 7.0最小化安装 查看yum 所有安装的软件包~

    使用命令 yum list installed [root@localhost ~]# yum list installed 已加载插件:fastestmirror base | 3.6 kB 00: ...

  8. LevelDB库简介

    LevelDB库简介 一.LevelDB入门 LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询 ...

  9. Working with Transactions (EF6 Onwards)

    Data Developer Center > Learn > Entity Framework > Get Started > Working with Transactio ...

  10. 整理一下Entity Framework的查询

    整理一下Entity Framework的查询 2012-08-30 13:41:59 标签:Entity Framework 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信 ...