ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stream(스트림) - 8. 스트림의 변환
    Java 2020. 3. 11. 22:34
    반응형

    스트림 -> 기본형 스트림

    // Stream<T> -> IntStream
    mapToInt(ToIntFunction<T> mapper)
    
    // Stream<T> -> LongStream
    mapToLong(ToLongFunction<T> mapper)
    
    // Stream<T> -> DoubleStream
    mapToDouble(ToDoubleFunction<T> mapper)

    기본형 스트림 -> 스트림

    // IntStream -> Stream<Integer>
    // LongStream -> Stream<Long>
    // DoubleStream -> Stream<Double>
    boxed()
    
    // IntStream/LongStream/DoubleStream -> Stream<U>
    mapToObj(DoubleFunction<U> mapper)

    기본형 스트림 -> 기본형 스트림

    // IntStream -> LongStream
    asLongStream()
    
    // IntStream -> DoubleStream
    asDoubleStream()

    스트림 -> 부분 스트림

    // Stream<T> -> Stream<T>
    // IntStream -> IntStream
    skip(long n)
    limit(long maxSize)

    두 개의 스트림 -> 스트림

    // Stream<T>, Stream<T> -> Stream<T>
    concat(Stream<T> a, Stream<T> b)
    
    // IntStream, IntStream -> IntStream
    concat(IntStream a, IntStream b)
    
    // LongStream, LongStream -> LongStream
    concat(LongStream a, LongStream b)
    
    // DoubleStream, DoubleStream -> DoubleStream
    concat(DoubleStream a, DoubleStream b)

    스트림의 스트림 -> 스트림

    // Stream<Stream<T>> -> Stream<T>
    flatMap(Function mapper)
    
    // Stream<IntStream> -> IntStream
    flatMapToInt(Function mapper)
    
    // Stream<LongStream> -> LongStream
    flatMapToLong(Function mapper)
    
    // Stream<DoubleStream> -> DoubleStream
    flatMapToDouble(Function mapper)

    스트림 <-> 병렬 스트림

    // Stream<T> <-> Stream<T>
    // IntStream <-> IntStream
    // LongStream <-> LongStream
    // DoubleStream <-> DoubleStream
    parallel()   // 스트림 -> 병렬 스트림
    sequential() // 병렬 스트림 -> 스트림 

    스트림 -> 컬렉션

    // Stream<T>/IntStream/LongStream/DoubleStream -> Collection<T>
    collect(Collectors.toCollection(Supplier factory)
    
    // Stream<T>/IntStream/LongStream/DoubleStream -> List<T>
    collect(Collectors.toList())
    
    // Stream<T>/IntStream/LongStream/DoubleStream -> Set<T>
    collect(Collectors.toSet())

    컬렉션 -> 스트림

    // Collection<T>/List<T>/Set<T> -> Stream<T>
    stream()

    스트림 -> Map

    // Stream<T>/IntStream/LongStream/DoubleStream -> Map<K, V>
    collect(Collectors.toMap(Function key, Function value)
    collect(Collectors.toMap(Function k, Function v, BinaryOperator merge))
    collect(Collectors.toMap(Function k, Function v, BinaryOperator merge, Supplier mapSupplier))

    스트림 -> 배열

    // Stream<T> -> Object[]
    toArray()
    
    // Stream<T> -> T[]
    toArray(IntFunction<A[]> generator)
    
    // IntStream -> int[]
    // LongStream -> long[]
    // DoubleStream -> double[]
    toArray()
    반응형

    댓글

Designed by Tistory.