Stream流,集合與基本數組的相互轉換


Arrays類的Api

 stream()方法傳入數組,返回對應的stream流。

 

Collection集合的Api:

 stream()不傳參數,返回Stream流。

有了上述Api可以完成如下轉換....

 

集合與基本數組的相互轉換

    @Test
    public void test5(){
        int[] array = {1, 2, 5, 5, 5, 5, 6, 6, 7, 2, 9, 2};
 
        /*int[]轉list*///java8及以上版本
        List<Integer> list1 = Arrays.stream(array).boxed().collect(Collectors.toList());
 
        /*list轉int[]*/
        //方法一:
        Integer[] intArr =  list.toArray(new Integer[list.size()]);
        //方法二:java8及以上版本
        int[] intArr1 =  list.stream().mapToInt(Integer::valueOf).toArray();
        
    }

 補充Stream的Api:

拿到stream流之后,可以根據stream方法的返回值類型,如果仍然是Stream就可以瘋狂的鏈式調用stream的Api了。

Modifier and Type Method and Description
boolean allMatch(Predicate<? super T> predicate)
返回此流中的所有元素是否匹配所提供的謂詞。
boolean anyMatch(Predicate<? super T> predicate)
返回此流中的任何元素是否匹配所提供的謂詞。
static <T> Stream.Builder<T> builder()
返回一個 Stream生成器。
<R,A> R collect(Collector<? super T,A,R> collector)
執行 mutable reduction操作對元素的使用 Collector流。
<R> R collect(Supplier<R> supplier, BiConsumer<R,? super T> accumulator, BiConsumer<R,R> combiner)
執行該流的元素 mutable reduction操作。
static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b)
創建一個懶洋洋的級聯流的元素的所有元素的第一流通過第二個流的元素。
long count()
返回此流中元素的計數。
Stream<T> distinct()
返回一個包含不同的元素流(根據 Object.equals(Object))這個流。
static <T> Stream<T> empty()
返回一個空的順序 Stream
Stream<T> filter(Predicate<? super T> predicate)
返回由該流的元素組成的流,該元素與給定的謂詞匹配。
Optional<T> findAny()
返回一個 Optional描述一些流元素,或一個空的 Optional如果流是空的。
Optional<T> findFirst()
返回一個 Optional描述此流的第一個元素,或者一個空的 Optional如果流是空的。
<R> Stream<R> flatMap(Function<? super T,? extends Stream<? extends R>> mapper)
返回由將所提供的映射函數應用到每個元素的映射流的內容替換此流的每個元素的結果的結果流。
DoubleStream flatMapToDouble(Function<? super T,? extends DoubleStream> mapper)
返回一個包含有一個映射的流應用提供的映射功能,每個元件產生的內容替換此流的每個元素的結果 DoubleStream
IntStream flatMapToInt(Function<? super T,? extends IntStream> mapper)
返回一個包含有一個映射的流應用提供的映射功能,每個元件產生的內容替換此流的每個元素的結果 IntStream
LongStream flatMapToLong(Function<? super T,? extends LongStream> mapper)
返回一個包含有一個映射的流應用提供的映射功能,每個元件產生的內容替換此流的每個元素的結果 LongStream
void forEach(Consumer<? super T> action)
對該流的每個元素執行一個動作。
void forEachOrdered(Consumer<? super T> action)
對該流的每個元素執行一個操作,如果流有一個定義的遇到順序,則在該流的遇到順序中執行一個動作。
static <T> Stream<T> generate(Supplier<T> s)
返回一個無窮序列無序流,其中每個元素是由提供 Supplier生成。
static <T> Stream<T> iterate(T seed, UnaryOperator<T> f)
返回一個無窮序列有序 Stream由最初的一元 seed函數的 f迭代應用產生的,產生一個由 seedf(seed)f(f(seed)) Stream,等。
Stream<T> limit(long maxSize)
返回一個包含該流的元素流,截斷長度不超過 maxSize
<R> Stream<R> map(Function<? super T,? extends R> mapper)
返回一個流,包括將給定函數應用到該流元素的結果。
DoubleStream mapToDouble(ToDoubleFunction<? super T> mapper)
返回一個包含應用給定的功能,該流的元素的結果 DoubleStream
IntStream mapToInt(ToIntFunction<? super T> mapper)
返回一個包含應用給定的功能,該流的元素的結果 IntStream
LongStream mapToLong(ToLongFunction<? super T> mapper)
返回一個包含應用給定的功能,該流的元素的結果 LongStream
Optional<T> max(Comparator<? super T> comparator)
返回最大元本流根據提供的 Comparator
Optional<T> min(Comparator<? super T> comparator)
返回最小元本流根據提供的 Comparator
boolean noneMatch(Predicate<? super T> predicate)
返回此流中的任何元素是否匹配所提供的謂詞。
static <T> Stream<T> of(T... values)
返回一個元素為指定值的順序排列的流。
static <T> Stream<T> of(T t)
返回一個包含一個元素的順序 Stream
Stream<T> peek(Consumer<? super T> action)
返回由該流的元素組成的流,並在所提供的流中執行所提供的每個元素上的動作。
Optional<T> reduce(BinaryOperator<T> accumulator)
對這一 reduction流元素,使用 associative累積函數,並返回一個 Optional描述價值減少,如果任何。
T reduce(T identity, BinaryOperator<T> accumulator)
對這一 reduction流元素,使用提供的價值認同和 associative累積函數,返回值減少。
<U> U reduce(U identity, BiFunction<U,? super T,U> accumulator, BinaryOperator<U> combiner)
對這一 reduction流元素,使用提供的身份,積累和組合功能。
Stream<T> skip(long n)
返回一個包含此流的其余部分丟棄的流的第一 n元素后流。
Stream<T> sorted()
返回由該流的元素組成的流,按自然順序排序。
Stream<T> sorted(Comparator<? super T> comparator)
返回一個包含該流的元素流,根據提供的 Comparator排序。
Object[] toArray()
返回包含此流元素的數組。
<A> A[] toArray(IntFunction<A[]> generator)
返回一個數組包含該流的元素,使用提供的 generator函數分配的返回的數組,以及可能對分區執行或調整所需的任何額外的數組。

Stream帶我瘋狂....


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM