Stream流

简介: Stream流

Stream流是处理集合的一种响应式编程

一、方法

1.1、filter()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
/**
* filter() 过滤方法参数是 Predicate 条件 也可以直接传入larmd表达式
* .collect(Collectors.toList()); 返回一个新的集合
*
*/
List<String> collect = list.stream()
    .filter(str -> str.length() >= 5)
    .collect(Collectors.toList());
System.out.println(collect); // [Hello, World]

1.2、limit()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
/**
 * limit() 方法截取数组中的前几位元素
 * .limit(2) 截取数组中的前两个元素
 *
 */
list.stream()
        .limit(2)
        .forEach(str -> System.out.println(str)); // HelloWorld

1.3、sorted()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
/**
 * sorted()方法排序 默认是升序
 * .sorted(Comparator.reverseOrder())  降序 排序
 */
intList.stream()
        .sorted(Comparator.reverseOrder())
        .forEach(num -> System.out.println(num));
// 输出最大
// max(Integer::compareTo) 参数的意思为,以Integer方式进行排序
System.out.println(intList.stream()
        .max(Integer::compareTo).get());
// 输出最下
System.out.println(intList.stream()
        .min(Integer::compareTo).get());
// 输出集合长度
System.out.println(intList.stream().count());

1.4、map()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
/**
 * map() 对数组中的元素进行操作
 */
List<Integer> collect = intList.stream()
        .map(num -> num + 10)
        .collect(Collectors.toList());
System.out.println(collect);

1.5、reduce()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
/**
 * reduce() 方法 返回的是一个值,
 * 以数字数组集合为例
 * 参数是在 传了两个值 sum,num
 * sum为要累加的和的值 num为数组中的每个元素
 */
System.out.println(intList.stream()
        .reduce((sum, num) -> sum += num).get());

1.6、collect()

List<String> list = Arrays.asList("Hello","World","Java");
List<Integer> intList = Arrays.asList(2,1,4,5,6,3);
 /**
 * collect() 方法 基于目标集合生成一个新的集合
 */
System.out.println(intList.stream()
        .filter(num -> num % 2 == 0)
        .collect(Collectors.toList()));


相关文章
|
4天前
|
Java
【Java】Stream流是什么,如何使用Stream流?
【Java】Stream流是什么,如何使用Stream流?
43 0
|
4天前
|
存储 Java API
Stream流
Stream流
34 1
|
7月前
|
Java
java流是指在Java中用来读写数据的一组有序的数据序列,它可以将数据从一个地方带到另一个地方。java流分为输入流和输出流,输入流是从源读取数据的流,而输出流是将数据写入到目的地的流。Java流又可以分为字节流和字符流,字节流读取的最小单位是一个字节(1byte=8bit),而字符流一次可以读取一个字符(1char = 2byte = 16bit)。Java流还可以分为节点流和处理流,节点流是直接从一个源读写数据的流(这个流没有经过包装和修饰),处理流是在对节点流封装的基础上的一种流。
106 0
|
8月前
|
Java
stream流操作
stream流操作
48 0
|
4天前
|
Java
Stream流教程
Stream流教程
37 0
|
6月前
|
Java
stream流分组
stream流分组
56 0
|
8月前
I/O流
IO流:I的全称是Input,O的全称是Output。表示读取,流可以看做是程序传输数据的通道。 作用:解决程序请求资源,输出资源的问题。
36 0
|
9月前
|
SQL JavaScript 前端开发
开始使用流
Java 8 中的 Stream 俗称为流,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念 Stream 用于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作 Stream API 借助于 Lambda 表达式,极大的提高编程效率和程序可读性 同时它提供串行和并行两种模式进行汇聚操作,并发模式能够充分利用多核处理器的优势 通过下面的例子我们可以初步体会到使用 Stream 处理集合的便利性
31 1
|
9月前
其他流
其他流
34 0