# :-: Stream API 一览
# Stream 接口一览
## List 转 Stream
~~~
// 转stream
list.stream()
// 并发处理
list.parallelStream()
~~~
## filter(过滤)
~~~
Stream<T> filter(Predicate<? super T> predicate);
~~~
## map(元素转换)
~~~
<R> Stream<R> map(Function<? super T, ? extends R> mapper);
IntStream mapToInt(ToIntFunction<? super T> mapper);
LongStream mapToLong(ToLongFunction<? super T> mapper);
DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper);
~~~
## flatMap(元素转换)
~~~
<R> Stream<R> flatMap(Function<? super T, ? extends Stream<? extends R>> mapper);
IntStream flatMapToInt(Function<? super T, ? extends IntStream> mapper);
LongStream flatMapToLong(Function<? super T, ? extends LongStream> mapper);
DoubleStream flatMapToDouble(Function<? super T, ? extends DoubleStream> mapper);
~~~
## distinct(去除重复,对象需要重写 equals、hashCode)
~~~
Stream<T> distinct();
~~~
## sorted(排序)
~~~
Stream<T> sorted();
Stream<T> sorted(Comparator<? super T> comparator);
~~~
## peek(生成新的流:流是单向的,例如用于日志打印)
~~~
Stream<T> peek(Consumer<? super T> action);
~~~
## limit(取前面`n`个元素)
~~~
Stream<T> limit(long maxSize);
~~~
## skip(跳过`n`个元素)
~~~
Stream<T> skip(long n);
~~~
## forEach(遍历)
~~~
void forEach(Consumer<? super T> action);
void forEachOrdered(Consumer<? super T> action);
~~~
## toArray(转换成数组)
~~~
Object[] toArray();
<A> A[] toArray(IntFunction<A[]> generator);
~~~
## reduce(结果归并)
~~~
T reduce(T identity, BinaryOperator<T> accumulator);
Optional<T> reduce(BinaryOperator<T> accumulator);
<U> U reduce(U identity,
BiFunction<U, ? super T, U> accumulator,
BinaryOperator<U> combiner);
~~~
## collect(转换成集合)
~~~
<R> R collect(Supplier<R> supplier,
BiConsumer<R, ? super T> accumulator,
BiConsumer<R, R> combiner);
<R, A> R collect(Collector<? super T, A, R> collector);
~~~
## 转list
~~~
// 转list
Collectors.toList();
// 转set
Collectors.toSet();
// 转map
List<TestVo> testList = new ArrayList<>(10);
Map<Long, TestVo> data = releaseList.stream()
.collect(Collectors.toMap(TestVo::getId, x -> x));
~~~
## count(计数)
~~~
long count();
~~~
## 查找
~~~
boolean anyMatch(Predicate<? super T> predicate);
boolean allMatch(Predicate<? super T> predicate);
boolean noneMatch(Predicate<? super T> predicate);
~~~
## 查找
~~~
Optional<T> findFirst();
Optional<T> findAny();
~~~
- 序
- 快速开始
- 环境要求
- 环境准备
- 工程导入
- 工程运行
- 技术基础
- Java8
- Lambda
- Lambda 受检异常处理
- Stream 简介
- Stream API 一览
- Stream API(上)
- Stream API(下)
- Optional 干掉空指针
- 函数式接口
- 新的日期 API
- Lombok
- SpringMVC
- Swagger
- Mybaties
- Mybaties-plus
- 开发初探
- 新建微服务工程
- 第一个API
- API鉴权
- API响应结果
- Redis 缓存
- 第一个CRUD
- 建表
- 建Entity
- 建Service和Mapper
- 新增API
- 修改API
- 删除API
- 查询API
- 单条查询
- 多条查询
- 分页
- 微服务远程调用
- 声明式服务调用Feign
- 熔断机制 Hystrix
- 开发进阶