Java 8 Stream使用实战 看这一篇就够了

获取流

  1. [Collection].stream()
  2. Stream.of()

终结方法

返回值类型是void

非终结方法

返回值类型是Stream

数组初始化

List<String> list = new ArrayList<>(){"1一", "1测试", "1测试啥", "1厉害了222", "1张三"};

forEach

list.stream().forEach(System.out::println);

count

list.stream().count();

lilter

list.stream().filter(s -> s.length() == 3).forEach(System.out::println);

limit

list.stream().limit(3).forEach(System.out::println);

skip

list.stream().skip(2).forEach(System.out::println);

map

list.stream().map(s -> (int) (s.charAt(0) - '0')).forEach(System.out::println);

sorted

list.stream().sorted((a, b) -> b.length() - a.length()).forEach(System.out::println);

distinct

list.stream().distinct().forEach(System.out::println);

match

boolean a = list.stream().allMatch(s->s.length()==0);
boolean b = list.stream().anyMatch(s->s.length()==0);
boolean c = list.stream().noneMatch(s->s.length()==0);

find

Optional<String> first = list.stream().findFirst();
Optional<String> any = list.stream().findAny();

max

Optional<String> max = list.stream().max((e, d) -> e.length() - d.length());

min

Optional<String> min = list.stream().min((e, d) -> e.length() - d.length());

reduce

String s = list.stream().reduce("",(x,y) -> x + y);

map reduce

int n = list.stream().map(str -> (int) (str.charAt(0) - '0')).reduce(0, Integer::sum);

map toInt

IntStream intStream = list.stream().mapToInt(str -> (int) (str.charAt(0) - '0'));

concat

Stream.concat(list.stream().limit(3), list.stream()).forEach(System.out::println);

可运行示例

import java.util.*;
import java.util.stream.IntStream;
import java.util.stream.Stream;

public class SteamTest {
    public static void main(String[] args) {

        List<String> list = Arrays.asList("1一", "1测试", "1测试啥", "1厉害了222", "1张三");

        list.stream().forEach(System.out::println);

        list.stream().count();

        list.stream().filter(s -> s.length() == 3).forEach(System.out::println);

        list.stream().limit(3).forEach(System.out::println);

        list.stream().skip(2).forEach(System.out::println);

        list.stream().map(s -> (int) (s.charAt(0) - '0')).forEach(System.out::println);

        list.stream().sorted((a, b) -> b.length() - a.length()).forEach(System.out::println);

        list.stream().distinct().forEach(System.out::println);

        boolean a = list.stream().allMatch(s -> s.length() == 0);

        boolean b = list.stream().anyMatch(s -> s.length() == 0);

        boolean c = list.stream().noneMatch(s -> s.length() == 0);

        Optional<String> first = list.stream().findFirst();

        Optional<String> any = list.stream().findAny();

        Optional<String> max = list.stream().max((e, d) -> e.length() - d.length());

        Optional<String> min = list.stream().min((e, d) -> e.length() - d.length());

        String s = list.stream().reduce("", (x, y) -> x + y);

        int n = list.stream().map(str -> (int) (str.charAt(0) - '0')).reduce(0, Integer::sum);

        IntStream intStream = list.stream().mapToInt(str -> (int) (str.charAt(0) - '0'));

        Stream.concat(list.stream().limit(3), list.stream()).forEach(System.out::println);

    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值