Interface TerminableWrappedStream<T,S extends TerminableWrappedStream<T,S>>

Type Parameters:
T - 流中的元素类型
S - TerminableWrappedStream的实现类类型
All Superinterfaces:
AutoCloseable, BaseStream<T,Stream<T>>, Iterable<T>, Stream<T>, WrappedStream<T,S>
All Known Implementing Classes:
EasyStream, EnhancedWrappedStream, EntryStream

public interface TerminableWrappedStream<T,S extends TerminableWrappedStream<T,S>> extends WrappedStream<T,S>
WrappedStream的扩展,用于为实现类提供更多终端操作方法的增强接口, 该接口提供的方法,返回值类型都不为Stream
Since:
Java 17+
Author:
Kimi Liu
  • Method Details

    • toList

      default List<T> toList()
      转换为ArrayList
      Specified by:
      toList in interface Stream<T>
      Returns:
      集合
      See Also:
    • toUnmodifiableList

      default List<T> toUnmodifiableList()
      换为不可变集合
      Returns:
      集合
      See Also:
    • toSet

      default Set<T> toSet()
      转换为HashSet
      Returns:
      集合
      See Also:
    • toUnmodifiableSet

      default Set<T> toUnmodifiableSet()
      换为不可变集合
      Returns:
      集合
      See Also:
    • toColl

      default <C extends Collection<T>> C toColl(Supplier<C> collectionFactory)
      转换成集合
      Type Parameters:
      C - 集合类型
      Parameters:
      collectionFactory - 集合工厂(可以是集合构造器)
      Returns:
      集合
    • toMap

      default <K> Map<K,T> toMap(Function<? super T,? extends K> keyMapper)
      转换为map,key为给定操作执行后的返回值,value为当前元素
      Type Parameters:
      K - key类型
      Parameters:
      keyMapper - 指定的key操作
      Returns:
      map
      See Also:
    • toMap

      default <K, U> Map<K,U> toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
      转换为map,data,value为给定操作执行后的返回值
      Type Parameters:
      K - key类型
      U - value类型
      Parameters:
      keyMapper - 指定的key操作
      valueMapper - 指定value操作
      Returns:
      map
      See Also:
    • toUnmodifiableMap

      default <K, U> Map<K,U> toUnmodifiableMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper)
      转换为不可变map,data,value为给定操作执行后的返回值
      Type Parameters:
      K - key类型
      U - value类型
      Parameters:
      keyMapper - 指定的key操作
      valueMapper - 指定value操作
      Returns:
      map
      See Also:
    • toMap

      default <K, U> Map<K,U> toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
      转换为map,data,value为给定操作执行后的返回值
      Type Parameters:
      K - key类型
      U - value类型
      Parameters:
      keyMapper - 指定的key操作
      valueMapper - 指定value操作
      mergeFunction - 合并操作
      Returns:
      map
      See Also:
    • toUnmodifiableMap

      default <K, U> Map<K,U> toUnmodifiableMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction)
      转换为不可变map,data,value为给定操作执行后的返回值
      Type Parameters:
      K - key类型
      U - value类型
      Parameters:
      keyMapper - 指定的key操作
      valueMapper - 指定value操作
      mergeFunction - 合并操作
      Returns:
      map
      See Also:
    • toMap

      default <K, U, M extends Map<K, U>> M toMap(Function<? super T,? extends K> keyMapper, Function<? super T,? extends U> valueMapper, BinaryOperator<U> mergeFunction, Supplier<M> mapSupplier)
      转换为map,data,value为给定操作执行后的返回值
      Type Parameters:
      K - key类型
      U - value类型
      M - map类型
      Parameters:
      keyMapper - 指定的key操作
      valueMapper - 指定value操作
      mergeFunction - 合并操作
      mapSupplier - map工厂
      Returns:
      map
    • toIdxMap

      default Map<Integer,T> toIdxMap()
      转换为map,key为下标,value为元素
      Returns:
      map
    • toIdxMap

      default <U> Map<Integer,U> toIdxMap(Function<? super T,? extends U> valueMapper)
      转换为map,key为下标,value为给定操作执行后的返回值
      Type Parameters:
      U - value类型
      Parameters:
      valueMapper - 指定value操作
      Returns:
      map
    • toZip

      default <R> Map<T,R> toZip(Iterable<R> other)
      与给定的可迭代对象转换成map,key为现有元素,value为给定可迭代对象迭代的元素 至少包含全部的key,如果对应位置上的value不存在,则为null
      Type Parameters:
      R - 可迭代对象迭代的元素类型
      Parameters:
      other - 可迭代对象
      Returns:
      map,key为现有元素,value为给定可迭代对象迭代的元素; 至少包含全部的key,如果对应位置上的value不存在,则为null; 如果key重复, 则保留最后一个关联的value;
    • findFirst

      default Optional<T> findFirst(Predicate<? super T> predicate)
      获取与给定断言匹配的第一个元素
      Parameters:
      predicate - 断言
      Returns:
      与给定断言匹配的第一个元素
    • findFirstIdx

      default int findFirstIdx(Predicate<? super T> predicate)
      获取与给定断言匹配的第一个元素的下标,并行流下标永远为-1
      Parameters:
      predicate - 断言
      Returns:
      与给定断言匹配的第一个元素的下标,如果不存在则返回-1
    • findLast

      default Optional<T> findLast()
      获取最后一个元素
      Returns:
      最后一个元素
    • findLast

      default Optional<T> findLast(Predicate<? super T> predicate)
      获取与给定断言匹配的最后一个元素
      Parameters:
      predicate - 断言
      Returns:
      与给定断言匹配的最后一个元素
    • findLastIdx

      default int findLastIdx(Predicate<? super T> predicate)
      获取与给定断言匹配的最后一个元素的下标,并行流下标永远为-1
      Parameters:
      predicate - 断言
      Returns:
      与给定断言匹配的最后一个元素的下标,如果不存在则返回-1
    • at

      default Optional<T> at(Integer idx)
      获取流中指定下标的元素,如果是负数,则从最后一个开始数起
      Parameters:
      idx - 下标
      Returns:
      指定下标的元素
    • isEmpty

      default boolean isEmpty()
      流是否为空
      Returns:
      流是否为空
    • isNotEmpty

      default boolean isNotEmpty()
      流是否不为空
      Returns:
      流是否不为空
    • join

      default String join()
      返回拼接后的字符串
      Returns:
      拼接后的字符串
      See Also:
    • join

      default String join(CharSequence delimiter)
      返回拼接后的字符串
      Parameters:
      delimiter - 分隔符
      Returns:
      拼接后的字符串
      See Also:
    • join

      default String join(CharSequence delimiter, CharSequence prefix, CharSequence suffix)
      返回拼接后的字符串
      Parameters:
      delimiter - 分隔符
      prefix - 前缀
      suffix - 后缀
      Returns:
      拼接后的字符串
    • group

      default <K> Map<K,List<T>> group(Function<? super T,? extends K> classifier)
      通过给定分组依据进行分组
      Type Parameters:
      K - 实体中的分组依据对应类型,也是Map中key的类型
      Parameters:
      classifier - 分组依据,得到的键为null时不会抛出异常
      Returns:
      map
      See Also:
    • group

      default <K, A, D> Map<K,D> group(Function<? super T,? extends K> classifier, Collector<? super T,A,D> downstream)
      通过给定分组依据进行分组
      Type Parameters:
      K - 实体中的分组依据对应类型,也是Map中key的类型
      A - 下游操作在进行中间操作时对应类型
      D - 下游操作对应返回类型,也是Map中value的类型
      Parameters:
      classifier - 分组依据,得到的键为null时不会抛出异常
      downstream - 下游操作
      Returns:
      map
      See Also:
    • group

      default <K, D, A, M extends Map<K, D>> M group(Function<? super T,? extends K> classifier, Supplier<M> mapFactory, Collector<? super T,A,D> downstream)
      通过给定分组依据进行分组
      Type Parameters:
      K - 实体中的分组依据对应类型,也是Map中key的类型
      D - 下游操作对应返回类型,也是Map中value的类型
      A - 下游操作在进行中间操作时对应类型
      M - 最后返回结果Map类型
      Parameters:
      classifier - 分组依据,得到的键为null时不会抛出异常
      mapFactory - 提供的map
      downstream - 下游操作
      Returns:
      map
      See Also:
    • partition

      default Map<Boolean,List<T>> partition(Predicate<T> predicate)
      根据给定判断条件分组
      Parameters:
      predicate - 判断条件
      Returns:
      map
      See Also:
    • partition

      default <C extends Collection<T>> Map<Boolean,C> partition(Predicate<T> predicate, Supplier<C> collFactory)
      根据给定判断条件分组
      Type Parameters:
      C - 值类型
      Parameters:
      predicate - 判断条件
      collFactory - 提供的集合
      Returns:
      map
      See Also:
    • partition

      default <R> Map<Boolean,R> partition(Predicate<T> predicate, Collector<T,?,R> downstream)
      根据给定判断条件分组
      Type Parameters:
      R - 返回值类型
      Parameters:
      predicate - 判断条件
      downstream - 下游操作
      Returns:
      map
    • forEachIdx

      default void forEachIdx(BiConsumer<? super T,Integer> action)
      对流里面的每一个元素执行一个操作,操作带下标,并行流时下标永远为-1 这是一个终端操作
      Parameters:
      action - 操作
    • forEachOrderedIdx

      default void forEachOrderedIdx(BiConsumer<? super T,Integer> action)
      对流里面的每一个元素按照顺序执行一个操作,操作带下标,并行流时下标永远为-1 这是一个终端操作
      Parameters:
      action - 操作