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 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 TypeMethod and Description
boolean allMatch(Predicate<? super T> predicate) 返回此流中的所有元素是否匹配所提供的谓词。
boolean anyMatch(Predicate<? super T> predicate) 返回此流中的任何元素是否匹配所提供的谓词。
static  Stream.Builder builder() 返回一个 Stream生成器。
 R collect(Collector<? super T,A,R> collector) 执行 mutable reduction操作对元素的使用 Collector流。
 R collect(Supplier supplier, BiConsumer accumulator, BiConsumer combiner) 执行该流的元素 mutable reduction操作。
static  Stream concat(Stream<? extends T> a, Stream<? extends T> b) 创建一个懒洋洋的级联流的元素的所有元素的第一流通过第二个流的元素。
long count() 返回此流中元素的计数。
Stream distinct() 返回一个包含不同的元素流(根据 Object.equals(Object))这个流。
static  Stream empty() 返回一个空的顺序 Stream
Stream filter(Predicate<? super T> predicate) 返回由该流的元素组成的流,该元素与给定的谓词匹配。
Optional findAny() 返回一个 Optional描述一些流元素,或一个空的 Optional如果流是空的。
Optional findFirst() 返回一个 Optional描述此流的第一个元素,或者一个空的 Optional如果流是空的。
 Stream 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  Stream generate(Supplier s) 返回一个无穷序列无序流,其中每个元素是由提供 Supplier生成。
static  Stream iterate(T seed, UnaryOperator f) 返回一个无穷序列有序 Stream由最初的一元 seed函数的 f迭代应用产生的,产生一个由 seedf(seed)f(f(seed)) Stream,等。
Stream limit(long maxSize) 返回一个包含该流的元素流,截断长度不超过 maxSize
 Stream 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 max(Comparator<? super T> comparator) 返回最大元本流根据提供的 Comparator
Optional min(Comparator<? super T> comparator) 返回最小元本流根据提供的 Comparator
boolean noneMatch(Predicate<? super T> predicate) 返回此流中的任何元素是否匹配所提供的谓词。
static  Stream of(T... values) 返回一个元素为指定值的顺序排列的流。
static  Stream of(T t) 返回一个包含一个元素的顺序 Stream
Stream peek(Consumer<? super T> action) 返回由该流的元素组成的流,并在所提供的流中执行所提供的每个元素上的动作。
Optional reduce(BinaryOperator accumulator) 对这一 reduction流元素,使用 associative累积函数,并返回一个 Optional描述价值减少,如果任何。
T reduce(T identity, BinaryOperator accumulator) 对这一 reduction流元素,使用提供的价值认同和 associative累积函数,返回值减少。
 U reduce(U identity, BiFunction accumulator, BinaryOperator combiner) 对这一 reduction流元素,使用提供的身份,积累和组合功能。
Stream skip(long n) 返回一个包含此流的其余部分丢弃的流的第一 n元素后流。
Stream sorted() 返回由该流的元素组成的流,按自然顺序排序。
Stream sorted(Comparator<? super T> comparator) 返回一个包含该流的元素流,根据提供的 Comparator排序。
Object[] toArray() 返回包含此流元素的数组。
 A[] toArray(IntFunction generator) 返回一个数组包含该流的元素,使用提供的 generator函数分配的返回的数组,以及可能对分区执行或调整所需的任何额外的数组。

Stream带我疯狂....