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流终结操作之forEach&count