Java的stream流操作

stream()简介

stream()方法在接口Collection中,接口定义如下

public interface Collection<E> extends Iterable<E> {
    default Stream<E> stream() {
        return StreamSupport.stream(spliterator(), false);
    }
    //接口其它方法
}

绝大部分集合容器都实现了该接口,常用容器如Set、List都实现了Collection接口,以下为List的定义

public interface List<E> extends Collection<E> {
    //接口方法
}

将List转换为Stream:

List<Integer> list= Lists.newArrayList();
list.add(1);
list.add(2);
list.add(3);
Stream<Integer> stream=list.stream();

对应Stream接口,其定义如下:

public interface Stream<T> extends BaseStream<T, Stream<T>> {
    //其它方法
    .....
    //常用方法

    //对流里面对数据进行筛选,符合表达式predicate
    Stream<T> filter(Predicate<? super T> predicate);
    //对流里面对元素进行映射,根据函数对象mapper,将T映射为R
    <R> Stream<R> map(Function<? super T, ? extends R> mapper);
    //对流中对元素进行映射,T映射为Int
    IntStream mapToInt(ToIntFunction<? super T> mapper);
    //T映射为Long
    LongStream mapToLong(ToLongFunction<? super T> mapper);
    //T映射为Double
    DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper);
    //根据自然比较规则,对流中元素排序
    Stream<T> sorted();
    //根据给定对比较器排序
    Stream<T> sorted(Comparator<? super T> comparator);
    //去重
    Stream<T> distinct();
    //对流中元素进行收集,组合成集合
    <R, A> R collect(Collector<? super T, A, R> collector);
    //根据比较规则,返回最小的元素
    Optional<T> min(Comparator<? super T> comparator);
    //根据比较规则,返回最大的元素
    Optional<T> max(Comparator<? super T> comparator);
}

利用stream对List进行排序

List<Integer> array= Lists.newArrayList();
array.add(3);
array.add(8);
array.add(9);
array.add(5);
List<Integer> list=array.stream().sorted(Comparator.comparing(Integer::intValue)).collect(Collectors.toList());
for (Integer integer : list) {
     System.out.println(integer);
}

输出结果为

3
5
8
9
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值