Java之Stream操作

Posted 行云至他方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之Stream操作相关的知识,希望对你有一定的参考价值。

将ArrayList中的元素按照给定字符拼接起来

    public static void main(String[] args) {

        List<String> list = Arrays.asList("nice","to","meet","you");

        System.out.println(list.stream().collect(Collectors.joining("-")).toString());

    }

 

把ArrayList中的字符串全变成大写

    public static void main(String[] args) {

        List<String> list = Arrays.asList("nice","to","meet","you");

//        list.stream().map(s -> {
//            return s.toUpperCase();
//        }).collect(Collectors.toList()).forEach(s -> System.out.println(s));
    list.stream().map(String::toUpperCase).collect(Collectors.toList()).forEach(System.out::println);
    }

flatMap()将stream流中的每一个元素转换成一个流再进行操作:
    public static void main(String[] args) {
        Stream<List<Integer>> stream = Stream.of(Arrays.asList(1,3,5,7,9),Arrays.asList(2,4,6,8,10));
        stream.flatMap(theList->theList.stream()).map(i->i*i).forEach(System.out::println);
    }

 

    public static void main(String[] args) {
        //Supplier<T> s 不接收参数,但是返回一个数据类型
        Stream<String> stream = Stream.generate(UUID.randomUUID()::toString);
        stream.findFirst().ifPresent( System.out::printf);

        //无限流
//        Stream.iterate(1, i -> i+1 ).forEach(System.out::println);

        //限制一下
        Stream.iterate(1, integer -> integer+10).limit(10).forEach(System.out::println);
    }
    public static void main(String[] args) {

        Stream.iterate(1,item -> item + 2).limit(6).filter(item -> item > 2).map(item -> item * 2).skip(2).limit(2).reduce(Integer::sum).ifPresent(System.out::print);

        System.out.println(Stream.iterate(1,item -> item +2).limit(6).filter(item -> item  >2 ).mapToInt(item -> item*2).skip(2).limit(2).sum());

        Stream.iterate(1,item -> item +2).limit(6).filter(item -> item>2 ).mapToInt(item -> item*2).skip(2).limit(2).min().ifPresent(System.out::println);
    }

 

 

以上是关于Java之Stream操作的主要内容,如果未能解决你的问题,请参考以下文章

Java 之 Stream 流

Java8之Stream

[Java基础]Stream流终结操作之forEach&count

Java8实战之Stream

Java高阶进阶之Java函数式编程-Stream流-Lambda表达式

Java高阶进阶之Java函数式编程-Stream流-Lambda表达式