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()));


相关文章
|
7月前
|
Java
【Java】Stream流是什么,如何使用Stream流?
【Java】Stream流是什么,如何使用Stream流?
95 0
|
2月前
|
存储 JavaScript 网络协议
Stream
【10月更文挑战第22天】
33 1
|
7月前
|
存储 Java API
Stream流
Stream流
67 1
|
3月前
|
Java 数据处理
Stream流的简单使用
这篇文章介绍了Java中Stream流的基本概念和使用方法。文章解释了Stream流的三类方法:获取流、中间方法和终结方法。详细讨论了如何生成Stream流,包括从Collection体系集合、Map体系集合、数组和同种数据类型的多个数据中生成流。接着,介绍了Stream流的中间操作方法,如`filter`、`limit`、`skip`、`concat`和`distinct`。文章还讨论了Stream流的终结方法,如`forEach`和`count`,以及收集方法,如`collect`。最后,通过几个例子演示了如何使用Stream流进行数据处理和收集操作。
|
7月前
|
Java 容器
Stream 流常见基本操作
Stream 流常见基本操作
|
6月前
|
API
Stream流知识
Stream流知识
37 0
|
6月前
|
存储 Java API
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
Java——Stream流(1/2):Stream流入门、Stream流的创建(认识Stream、体验Stream流、Stream流的使用步骤、获取Stream流的方法)
98 0
|
Java
stream流操作
stream流操作
80 0
|
7月前
|
Java
Stream流教程
Stream流教程
80 0