针对map的lambda

简介: 针对map的lambda

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

例如原来的:

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

现在

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

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

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

还有其他的类型

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));

源码

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

以及

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

源码

static <K, V> Predicate<Map.Entry<K, V>> entryPred(BiPredicate<K, V> biPred) {
  return entry -> biPred.test(entry.getKey(), entry.getValue());
}
相关文章
|
11天前
lambda中orElse(null)使用
lambda中orElse(null)使用
|
11天前
|
C#
C# Lambda
C# Lambda
23 0
|
5月前
获取lambda
获取lambda
27 0
|
5月前
|
Python
lambda
lambda 是一个匿名函数,它通常用于简化代码,使代码更简洁、易读。lambda 函数不需要显式地使用 def 关键字进行定义,可以直接在表达式中使用。它的语法如下:
87 6
|
5月前
|
SQL Java 程序员
聊聊lambda
聊聊lambda
27 1
|
5月前
lambda小技巧
lambda小技巧
27 0
|
8月前
|
设计模式 Java API
值得使用Lambda的8个场景,别再排斥它了!
前言 可能对不少人来说,Lambda显得陌生又复杂,觉得Lambda会导致代码可读性下降,诟病Lambda语法,甚至排斥。
|
8月前
|
算法 编译器 容器
|
9月前
关于数组中forEach() 、map()、filter()、reduce()、some()、every()的总结
关于数组中forEach() 、map()、filter()、reduce()、some()、every()的总结
30 0
|
Python
Python编程:list列表的几个高阶函数map、filter、reduce
Python编程:list列表的几个高阶函数map、filter、reduce
92 0