java之stream(jdk8)
一、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)的更多相关文章
- Java 8 Stream API
Java 8 Stream API JDK8 中有两大最为重要的改变.第一个是 Lambda 式:另外 Stream API(java.util.stream.*) Stream 是 JDK8 中处理 ...
- Java学习:JDK8的新特性
Java学习:JDK8的新特性 一.十大特性 Lambda表达式 Stream函数式操作流元素集合 接口新增:默认方法与静态方法 方法引用,与Lambda表达式联合使用 引入重复注解 类型注解 最新的 ...
- Java 8 Stream API详解--转
原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...
- 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 ...
- Java笔记:Java 流(Stream)、文件(File)和IO
更新时间:2018-1-7 12:27:21 更多请查看在线文集:http://android.52fhy.com/java/index.html java.io 包几乎包含了所有操作输入.输出需要的 ...
- Java 8 Stream
1.关于Java8部分新特性介绍 Java8的新特性很多,在此就不一一介绍了,这里只说一下我自己在工作用用得比较多的几点: 1.1.Lambda表达式 Lambda允许把函数作为一个方法的参数(函数作 ...
- [零]java8 函数式编程入门官方文档中文版 java.util.stream 中文版 流处理的相关概念
前言 本文为java.util.stream 包文档的译文 极其个别部分可能为了更好理解,陈述略有改动,与原文几乎一致 原文可参考在线API文档 https://docs.oracle.com/jav ...
- java 11 Stream 加强
Stream 是 Java 8 中的新特性,Java 9 开始对 Stream 增加了以下 4 个新方法. 1) 增加单个参数构造方法,可为null Stream.ofNullable(null).c ...
- Java 8 新特性-菜鸟教程 (5) -Java 8 Stream
Java 8 Stream Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据. Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种 ...
随机推荐
- Rsync
转自:http://www.mike.org.cn/blog/index.php?load=read&id=639###pp=0 [rsync实现网站的备份,文件的同步,不同系统的文件的同步, ...
- mysql user administration
1. 为数据库databasename创建web用户 1.1 创建数据库 mysql> create database databasename; 1.2 为数据库创建用户 mysql> ...
- C#------DateTime自定义格式
var text = Convert.ToString(DateTime.Now.ToString("yyyy/MM/dd"));
- IIS------IIS上部署MVC网站,打开后ExtensionlessUrlHandler-Integrated-4.0解决办法
链接: http://www.cnblogs.com/mrma/p/3529859.html
- Linux开放1521端口允许网络连接Oracle Listene
症状:1. TCP/IP连接是通的.可以用ping 命令测试. 2. 服务器上Oracle Listener已经启动. lsnrctl status 查看listener状态 lsnrctl s ...
- string find
string类的查找函数: ) const;//从pos开始查找字符c在当前字符串的位置 ) const;//从pos开始查找字符串s在当前串中的位置 int find(const char *s, ...
- matlab 中txt文件(含字符及数值)处理
matlab 中txt文件(含字符及数值)处理 (2008-08-02 09:45:12) 转载▼ 标签: 杂谈 分类: matlab及C学习 Matlab文件操作及读txt文件ZZ 2008-07- ...
- MySQL学习笔记——存储过程
- Java自定义异常类
用户可以根据自己的需要定义自己的异常类,定义异常类只需要继承Exception类即可 //================================================= // Fi ...
- MySQL 随机取数据效率问题
本文详细解说了MySQL Order By Rand()效率优化的方案,并给出了优化的思路过程,是篇不可多得的MySQL Order By Rand()效率美文. 最近由于需要大概研究了一下MYSQL ...