- 字符串
将字符串去掉括号,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();
网友评论