Java8使用stream(一)1.将集合类型进行一个转

简单的使用方法,是将list转为顺序流进行处理
(如果流中的数据量足够大,并行流可以加快处理速度,使用parallel()把顺序流转换成并行流 )

// 返回符合条件的第一个集合元素
Optional<Integer> findFirst = list.stream().parallel().filter(x->x>6).findFirst();
复制代码

拓展:
Optional 类是一个==可以为null==的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。==Optional 类的引入很好的解决空指针异常==。

// Optional.isPresent - 判断值是否存在,返回布尔值
System.out.println("参数值存在: " + a.isPresent());   

// Optional.orElse - 如果值存在,返回它,否则返回参数值
Integer value1 = a.orElse(new Integer(0));

//Optional.get - 获取值,值必须存在。先使用isPresent进行判断
Integer value2 = a.get();
复制代码

collect<收集>,toList<归集>

1. 将集合类型进行一个转换<映射>(map)

// 1.将对象包装为返回类
List<User> dataList = UserMapper.selectList(null);
List<UserVO> voList = dataList.stream().map(data -> {
            return new UserVO(
                    data.getId(),
                    data.getName()
            );
}).collect(Collectors.toList());

// 2.将对象属性抽取出来返回一个单独的集合
List<Integer> idList = dataList.stream().map(data ->  data.getId()).collect(Collectors.toList());
复制代码