📅  最后修改于: 2020-03-28 13:37:16             🧑  作者: Mango
Java 8中引入了Stream API,用于处理对象的集合。流是支持各种方法的对象序列,可以将这些方法通过管道传输以产生所需的结果。
Java流的功能是:
流上的不同操作:
中级操作:
List number = Arrays.asList(2,3,4,5);
List square = number.stream().map(x->x*x).collect(Collectors.toList());
List names = Arrays.asList("Reflection","Collection","Stream");
List result = names.stream().filter(s->s.startsWith("S")).collect(Collectors.toList());
List names = Arrays.asList("Reflection","Collection","Stream");
List result = names.stream().sorted().collect(Collectors.toList());
终端操作:
List number = Arrays.asList(2,3,4,5,3);
Set square = number.stream().map(x->x*x).collect(Collectors.toSet());
List number = Arrays.asList(2,3,4,5);
number.stream().map(x->x*x).forEach(y->System.out.println(y));
List number = Arrays.asList(2,3,4,5);
int even = number.stream().filter(x->x%2==0).reduce(0,(ans,i)-> ans+i);
演示使用Stream的程序
// Java展示Stream流操作
import java.util.*;
import java.util.stream.*;
class Demo
{
public static void main(String args[])
{
// 创建int的list
List number = Arrays.asList(2,3,4,5);
// 使用map方法
List square = number.stream().map(x -> x*x).
collect(Collectors.toList());
System.out.println(square);
// 创建一个String的list
List names =
Arrays.asList("Reflection","Collection","Stream");
// 使用filter方法
List result = names.stream().filter(s->s.startsWith("S")).
collect(Collectors.toList());
System.out.println(result);
// 使用sorted方法
List show =
names.stream().sorted().collect(Collectors.toList());
System.out.println(show);
// 创建你一个int的list
List numbers = Arrays.asList(2,3,4,5,2);
// collect方法返回一个集合
Set squareSet =
numbers.stream().map(x->x*x).collect(Collectors.toSet());
System.out.println(squareSet);
// 展示如何使用forEach方法
number.stream().map(x->x*x).forEach(y->System.out.println(y));
// 展示reduce方法
int even =
number.stream().filter(x->x%2==0).reduce(0,(ans,i)-> ans+i);
System.out.println(even);
}
}
输出:
[4, 9, 16, 25]
[Stream]
[Collection, Reflection, Stream]
[16, 4, 9, 25]
4
9
16
25
6
要点/观察: