Java -3- IntStream、LongStream、DoubleStream、BaseStream

IntStream、LongStream 和 DoubleStream 分别表示原始 int 流、 原始 long 流 和 原始 double 流。

这三个原始流类提供了大量的方法用于操作流中的数据,同时提供了相应的静态方法来初始化它们自己。
这三个原始流类都在 java.util.stream 命名空间下。

共有方法:

返回类型不同方法一致

共有方法:
//返回由该流中与给定谓词匹配的元素组成的流。(IntPredicate,这是一个函数接口,因此可以用作lambda表达式或方法引用的赋值目标。)
//IntPredicate里的方法
//and()     返回一个组合的谓词,代表了一个当前谓词与another这个谓词短路逻辑与的结果。当进行评估的时候,如果当前谓词是false,那么other这个谓词就不会参与评估。任何异常都会在评估谓词期间被抛出并返回给调用者。如果当前谓词评估抛出异常,other就不会进行评估。
//negate()  返回一个predicate,代表当前predicate的逻辑否定,返回当前predicate的一个逻辑否定的predicate。
//or()      返回一个组合的谓词,代表了一个当前谓词与another这个谓词短路逻辑与的结果。当进行评估的时候,如果当前谓词是false,那么other这个谓词就不会参与评估。任何异常都会在评估谓词期间被抛出并返回给调用者。如果当前谓词评估抛出异常,other就不会进行评估。
//test()    评测给定参数的当前谓词的值,如果输入参数匹配了谓词,就返回true, 否则返回 false
IntStream filter(IntPredicate predicate);
//返回一个流,该流由对该流的元素应用给定函数的结果组成
IntStream map(IntUnaryOperator mapper);
//返回一个具有对象值的Stream,其中包含将给定函数应用到该流的元素的结果。
<U> Stream<U> mapToObj(IntFunction<? extends U> mapper);
//返回一个DoubleStream,其中包含了将给定函数应用到该流的元素的结果。(做转换)
DoubleStream mapToDouble(IntToDoubleFunction mapper);
//返回一个流,该流由对每个元素应用所提供的映射函数生成的映射流的内容替换该流的每个元素的结果组成。
IntStream flatMap(IntFunction<? extends IntStream> mapper);
//返回由该流的不同元素组成的流。(去重)
IntStream distinct();
//返回一个按排序顺序由该流的元素组成的流。(排序)
IntStream sorted();
//返回由该流的元素组成的流,另外,在使用结果流中的元素时对每个元素执行提供的操作。
IntStream peek(IntConsumer action);
//返回由该流的元素组成的流,截断长度不超过maxSize。(截取)
IntStream limit(long maxSize);
//在丢弃流的第一个n元素后,返回由该流的剩余元素组成的流。(截取)
IntStream skip(long n);
//对流的每个元素执行一个操作。(循环)
void forEach(IntConsumer action);
//对这个流的每个元素执行一个操作,确保每个元素对于定义了遇到顺序的流按照遇到顺序进行处理。
void forEachOrdered(IntConsumer action);
//返回一个包含该流元素的数组
int[] toArray();
//reduce 操作可以实现从Stream中生成一个值,其生成的值不是随意的,而是根据指定的计算模型
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);
//合计
int sum();
//最小值
OptionalInt min();
//最大值
OptionalInt max();
//数量
long count();
//平均值
OptionalDouble average();
//各种描述(count、sum、min、max)
IntSummaryStatistics summaryStatistics();
//返回此流的任何元素是否与提供的谓词匹配。只要有一个条件满足即返回true
boolean anyMatch(IntPredicate predicate);
//返回此流的所有元素是否与提供的谓词匹配。必须全部都满足才会返回true
boolean allMatch(IntPredicate predicate);
//返回此流的任何元素是否与提供的谓词匹配。全都不满足才会返回true
boolean noneMatch(Predicate<? super T> predicate)
//返回描述流的第一个元素的 OptionalInt,如果流为空,则返回空代码OptionalInt。如果流没有遇到顺序,则可以返回任何元素。(获取第一个元素)
OptionalInt findFirst();
//将其中任意一个返回
OptionalInt findAny();
//返回由该流的元素组成的LongStreaml,转换为long。
LongStream asLongStream();
//返回DoubleStreaml,由该流的元素组成,转换为double。
DoubleStream asDoubleStream();
//返回一个Stream,由该流的元素组成,每个元素都被装箱为一个代码整数。
Stream<Integer> boxed();
//排序(正)
IntStream sequential();
//并行处理
IntStream parallel();
//迭代器
PrimitiveIterator.OfInt iterator();
//并行遍历迭代器
Spliterator.OfInt spliterator();
//返回一个空的序列&代码IntStream。返回一个空的顺序流
 IntStream empty()
 //返回包含单个元素的连续代码IntStreaml。
 IntStream of(int t)
 //返回一个顺序流,其元素为指定的值。为新流的元素赋值
 IntStream of(int... values)
 //通过迭代函数,生成一个有序无限的Int数据流。(由于是无限流,一般都是配合limit来使用)。
 //IntStream.iterate(2, n -> n * 3).limit(5).forEach(System.out::println);返回 2、6、18、54、162
 IntStream iterate(final int seed, final IntUnaryOperator f)
 //返回一个无限顺序无序流,其中每个元素由提供的IntSupplier(提供int值的结果)生成。这适用于生成恒定流,随机元素流等。
 //ntStream stream = IntStream.generate(()-> { return (int)(Math.random() * 10000); });
 //stream.limit(7).forEach(System.out::println);
 //结果:4247  6827  2676  9129  3360  8718  7925
 IntStream generate(IntSupplier s) 
 //参数startInclusive包含起始值,而endExclusive不包含最后一个值
 //ntStream intStream = IntStream.range(20, 30);
 //intStream.forEach(System.out::println);
 //range不包含最后的值、rangeClosed包含最后的值
 IntStream range(int startInclusive, int endExclusive)
 IntStream rangeClosed(int startInclusive, int endInclusive) 
 //方法创建一个级联流,其中的元素是第一个流的所有元素,后跟第二个流的所有元素。如果两个输入流都是有序的,则结果流是有序的;如果两个输入流中的任何一个是并行的,则结果流是并行的。
 //合并
 IntStream concat(IntStream a, IntStream b)  
 //返回一个Longstream,由对该流的元素应用给定函数的结果组成。(作用:转换成为longStream)
 LongStream mapToLong(IntToLongFunction mapper);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值