Java8中stream的使用

本文介绍了Java8中Stream API,它是处理集合的关键抽象概念,可执行复杂的数据操作,提供了高效且易用的数据处理方式。阐述了其特点,如非数据结构、不修改数据源、惰性求值等,还对其进行了分类,并介绍了数组转list等常用操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。
特点:
1.不是数据结构,不会保存数据。
2.不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。
3.惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算。

分类

在这里插入图片描述
无状态:指元素的处理不受之前元素的影响;

有状态:指该操作只有拿到所有元素之后才能继续下去。

非短路操作:指必须处理所有元素才能得到最终结果;

短路操作:指遇到某些符合条件的元素就可以得到最终结果,如 A || B,只要A为true,则无需判断B的结果。

具体使用

这里只对自己常用的进行介绍,后续用上其它的再回来进行补充。

数组转list

String[] arr = {“a”, “b”, “c”};
List list = Stream.of(arr).collect(Collectors.toList());

list转,分隔字符串

public static <T> String parseListToStr3(List<T> list){
      String result = list.stream().map(String::valueOf).collect(Collectors.joining(","));
      return result;
}

检查list集合中是否存在某个值

public static void main(String[] args) {
        People p1 = new People("b", "b");
        People p2 = new People("a", "b11");
        List<People> list = new ArrayList<>();
        list.add(p1);
        list.add(p2);
        
        boolean bool = list.stream().filter(a -> a.getName().equals("a") || a.getNick().equals("a")).findAny().isPresent();
        System.out.println(bool);
        
        List<People> data = list.stream().filter(a -> a.getName().equals("a") || a.getNick().equals("a")).collect(Collectors.toList());
        
        if(data != null && data.size() > 0) {
            for(int i=0; i<data.size(); i++) {
                System.out.println(data.get(i).getName() + "---" + data.get(i).getNick());
            }
        }
    }

获取list<对象>里面的数据组织成Map

Map<String, String> map = list.stream().collect(Collectors.toMap(User::getName, User::getSex));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值