当前位置: 首页 > 知识库问答 >
问题:

如何使用Java lambdas迭代列表映射并返回单个值?[副本]

尹善
2023-03-14

我有个智囊团。我需要迭代map >groups 并返回一个值!

我能和Lambda一起做这件事吗?怎么做?(如何获取具有类型_12项的组的id?类型_12项将在所有组中仅为一个)

提前致谢这是我的for代码:

String theId = null;
for(Map.Entry<UUID, List<Item>> group : groupsOfItems) {
    for (Item item : group.getValue()) {
        if (item.getType() == Types.TYPE_12) {
            theId = group.getKey().toString();
            break;
        }
    }
}

共有1个答案

米子轩
2023-03-14

这里有一个使用lambdas的解决方案。不同的是,这一个不使用FlatMap,并且如果找不到所需的值(基于这样一个问题,即在映射的整个值集中应该有且仅有一个Type_12)时抛出异常。

UUID result = groupsOfItems.entrySet().stream()
    .filter(e -> e.getValue().stream()
        .anyMatch(item -> item.getType() == TYPE.TYPE_12))
    .findAny().orElseThrow().getKey();
 类似资料:
  • 我有一个返回: 然后另一个用户这样使用它: 如何处理任何迭代中的失败情况? 我知道我可以使用,在这种情况下,错误结果将被忽略: 的迭代器根据成功状态具有0或1项,如果为0,将过滤掉它。 但是,我不想忽略错误,而是想让整个代码块停止并返回一个新错误(基于映射中出现的错误,或者只是转发现有错误)。 在Rust中如何最好地处理此问题?

  • 我有两份清单: 列表1: Object1(name1, id1) 列表2: Object2(name2, id2) 给定list1的大小与list2相同 我想迭代list2,如果list2的name2不为null,则更新list1的name1。 以下是使用旧java的代码: 用java实现这一点的最佳方法是什么。util。流动

  • 输入是一个哈希映射,比如 我想写一个方法,返回类型A的列表,其中有键,值属性与字符串类型,和键值从hashmap。 如何让它成为现实?

  • 我有我创建的地图的地图 我尝试在第二个映射中迭代键的值。 所以它可以是这样的: key1->keya->value1 -------->键->值2 -------->键->值4 -------->KeyC->value1 我想继续多久就继续多久。 因此,我有,并尝试使用名为的值变量和增量计数器if来循环中的所有值 我不知道如何获得。我试着这样做 但这给了我信笺。 如果我执行,它会给出我想要的正确值

  • 我有一个a类和B类的列表,没有重复的元素。“代码”属性在A类和B类中都是相同的。我想将它们转换为Map 最终映射的顺序应与列表1中的元素相同 ~A 更新:我将代码更新到下面,但它不是编译的。你知道怎么了吗?

  • 大家晚上好,我正在尝试用controller/Service/Dao/DaoImpl/和Mapper实现一个jdbctemplate模型。。。但从模型来看,映射器需要实现RowMapper或ParameterizedRowMapper,两者都有一个不返回列表的maprow方法。当我需要一个列表时,我在映射器中实现了一个方法来获得我需要的列表。但我不知道该怎么称呼它。在customerList方法中