美文网首页
流式操作

流式操作

作者: 抬头挺胸才算活着 | 来源:发表于2021-09-18 22:37 被阅读0次
  • 字符串
    将字符串去掉括号,StringBuilder::new创建一个容器sb,StringBuilder::append用来聚合单个元素,StringBuilder::append用来聚合多个临时的sb。
        String result = s.chars()
            .mapToObj(x->(char)x)
            .filter(x -> x != '(' && x != ')')
            .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append)
            .toString();
  • 求二维数组的最大值
Arrays.stream(dp).flatMapToInt(x -> Arrays.stream(x)).max().getAsInt();

flatMapToInt把二维数组中的每个一维数组转为一个IntStream

  • boolean数组转化为Stream<Boolean>
    x是boolean[],boolean数组不能直接用Arrays.stream(x)转为Stream<Boolean>,得用下面的方式。
IntStream.range(0, x.length).mapToObj(idx -> x[idx])
  • FindLast找到最后一个
    Stream<Integer> stream = Stream.iterate(0, i -> i + 1);
    stream.reduce((first, second) -> second).orElse(null);

  • slice
    stream.skip(left).limit(right + 1 - left)

  • 统计字符串中字符出现的次数
    Map<Character, Long> map = s.chars()
    .mapToObj(x -> (char) x)
    .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

  • Stream流转化为int数组
    int[] array = list.stream().mapToInt(i->i).toArray();
    或者
    int[] array = list.stream().mapToInt(Integer::intValue).toArray();

相关文章

网友评论

      本文标题:流式操作

      本文链接:https://www.haomeiwen.com/subject/fkgygltx.html