代码语言:javascript复制例如原来的:
Steam.of(Maps.of("foo", "bar"))
.map(e -> e.getKey() e.getValue())
.findFirst();
现在
代码语言:javascript复制Steam.of(Maps.of("foo", "bar"))
.map(SerFunc.entryFunc((key, value) -> key value))
.findFirst();
可以给key
和value
取不同的变量名,源码是
static <K, V, R> Function<Map.Entry<K, V>, R> entryFunc(BiFunction<K, V, R> biFunc) {
return entry -> biFunc.apply(entry.getKey(), entry.getValue());
}
还有其他的类型
代码语言:javascript复制val list = Lists.of();
Steam.of(Maps.of("foo", "bar"))
.forEach(SerCons.entryCons((key, value) -> list.add(key value)));
Assertions.assertEquals("foobar", list.get(0));
源码
代码语言:javascript复制static <K, V> Consumer<Map.Entry<K, V>> entryCons(BiConsumer<K, V> biCons) {
return entry -> biCons.accept(entry.getKey(), entry.getValue());
}
以及
代码语言:javascript复制val first =
Steam.of(Maps.of("foo", "bar"))
.findFirst(SerPred.entryPred((key, value) -> key.equals("foo") && value.equals("bar")));
Assertions.assertTrue(first.isPresent());
源码
代码语言:javascript复制static <K, V> Predicate<Map.Entry<K, V>> entryPred(BiPredicate<K, V> biPred) {
return entry -> biPred.test(entry.getKey(), entry.getValue());
}