前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >针对map的lambda

针对map的lambda

作者头像
阿超
发布2023-05-22 08:33:27
1910
发布2023-05-22 08:33:27
举报
文章被收录于专栏:快乐阿超快乐阿超

例如原来的:

代码语言: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();

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

代码语言:javascript
复制
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());
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档