雄辩是银,沉默是金。——佚名

例如原来的:

1
2
3
Steam.of(Maps.of("foo", "bar"))
.map(e -> e.getKey() + e.getValue())
.findFirst();

现在

1
2
3
Steam.of(Maps.of("foo", "bar"))
.map(SerFunc.entryFunc((key, value) -> key + value))
.findFirst();

可以给keyvalue取不同的变量名,源码是

1
2
3
static <K, V, R> Function<Map.Entry<K, V>, R> entryFunc(BiFunction<K, V, R> biFunc) {
return entry -> biFunc.apply(entry.getKey(), entry.getValue());
}

还有其他的类型

1
2
3
4
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));

源码

1
2
3
static <K, V> Consumer<Map.Entry<K, V>> entryCons(BiConsumer<K, V> biCons) {
return entry -> biCons.accept(entry.getKey(), entry.getValue());
}

以及

1
2
3
4
val first =
Steam.of(Maps.of("foo", "bar"))
.findFirst(SerPred.entryPred((key, value) -> key.equals("foo") && value.equals("bar")));
Assertions.assertTrue(first.isPresent());

源码

1
2
3
static <K, V> Predicate<Map.Entry<K, V>> entryPred(BiPredicate<K, V> biPred) {
return entry -> biPred.test(entry.getKey(), entry.getValue());
}