一、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. 《JavaScript权威指南》学习笔记 第三天 找个对象

    现实生活中真的对象没有找到,在JavaScript 里左一个对象又一个对象,搞的我也是晕晕乎乎不知所云.人事复杂,人心难懂.我虽然是文科生,但是也不善于巧言.还是在js里面找找对象吧.那么我们今天就从 ...

  2. hihoCoder1284机会渺茫(唯一分解定理 + 约分)

    题目链接 #1284 : 机会渺茫 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi最近在追求一名学数学的女生小Z.小Z其实是想拒绝他的,但是找不到好的说辞,于是提出 ...

  3. php5.1以上版本时间戳_时间戳与日期格式转换_相差8小时 的解决方案

    php5.1以上时间戳会与实际时间相差8小时,解决办法如下 .最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!! .修改php.ini.打开php.ini查找date.time ...

  4. 单个pdf提取测试

    # -*- coding: utf-8 -*- """ Created on Wed Feb 3 09:32:22 2016 pdf单个文件提取测试 @author: A ...

  5. Java数据结构——迭代器

  6. PHP页面跳转

    PHP页面跳转一.header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法.header()函数的主要功能是将HTTP协议标头(header)输出到浏览器. header( ...

  7. PasswordHasher

    namespace Microsoft.AspNet.Identity { public class PasswordHasher : IPasswordHasher { public virtual ...

  8. MySQL注入

    SQL Injection Tutorial by Marezzi (MySQL) SQL注入教程由Marezzi(MySQL的) In this tutorial i will describe h ...

  9. OC-Q&A

    How to declare a string in Objective-C ? A C string is just like in C. char myCString[] = "test ...

  10. mysql存储过程对900w数据进行操作测试

    新增索引:LTER TABLE `tablename` ADD INDEX `sdhid` (`createTime`) USING BTREE ;[SQL]ALTER TABLE `tablenam ...