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 语句从数据库查询数据的直观方式来提供一种 ...
随机推荐
- 获取URL的code的参数的值
1.获取URL的code的参数的值 需求说明:现在有URL为http://www.bdqn.cn/index.php?code=sdR4,请使用字符串对象的属性和方法来获取code的值,并把其指都转化 ...
- C#调用c++的dll报错:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏“
一:c++代码内部报错引起.可能是空指针或者其他. 二:需要从c#代码调试进入c++代码.可以吧c++的dll和pdb拷入工程项目的debug目录下面. 三:我发现的错误时在C++内部声明啦全局变量, ...
- javascript undefined 和void0
underfine === void 0 并不完全成立 undefined不是关键字 不是保留字 在IE低版本下可以被赋值 所以代码中一般以void 0 代替undefined
- JS-纯js制作动态成绩表(流程控制语句+js内置对象)
流程控制for循环+if判断+Math对象+Array对象+Date对象制作成绩表 <!DOCTYPE html><html> <head> <meta ch ...
- 转:在VS2010下编译、调试和生成mex文件
最近帮人调了一个程序,是网上公开的代码,利用matlab与c++混合编程做三维模型关键点检测,发现他们可以用VS2010编译.调试.生成mexw32文件,因此觉得之前在Matlab上利用mex命令真是 ...
- Linux防火墙:iptables禁IP与解封IP常用命令
在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...
- Zookeeper集群的安装和使用
Apache Zookeeper 由 Apache Hadoop 的 Zookeeper 子项目发展而来,现已经成为 Apache 的顶级项目,它是一个开放源码的分布式应用程序协调服务,是Google ...
- CentOS6.x安装配置nginx
nginx安装 nginx的官网:http://nginx.org/ 相应下载页面:http://nginx.org/en/download.html 我这里使用nginx的yum在线安装 w ...
- ecshop如何判断缓存文件是否能更新
1.打开temp->static_caches文件夹 2.点击后台“清楚缓存” 3.看static_caches文件夹里是否有文件删除 删除->可以更新缓存 否-> 不能更新缓存
- Kindeditor 编辑器POST提交的时候会出现符号被转换
Kindeditor编辑器输入符号单引号,双引号,斜杠 都会被转义 解决办法 $date['content']=$this->textString($_POST['content']); pub ...