gpt4 book ai didi

java - 在 map java流列表中查找 map

转载 作者:行者123 更新时间:2023-12-02 08:28:07 28 4
gpt4 key购买 nike

我使用以下代码迭代 Hashmap 列表以查找所需的 HashMap 对象。

public static Map<String, String> extractMap(List<Map<String, String>> mapList, String currentIp) {
for (Map<String, String> asd : mapList) {
if (asd.get("ip").equals(currentIp)) {
return asd;
}
}
return null;
}

我正在考虑使用 Java 8 流。这是我用来显示所需对象的代码。

public static void displayRequiredMapFromList(List<Map<String, String>> mapList, String currentIp) {
mapList.stream().filter(e -> e.get("ip").equals(currentIp)).forEach(System.out::println);
}

我无法使用以下代码从流中获取所需的 map

public static Map<String, String> extractMapByStream(List<Map<String, String>> mapList, String currentIp) {
return mapList.stream().filter(e -> e.get("ip").equals(currentIp))
.collect(Collectors.toMap(p -> p.getKey(), p -> p.getValue()));
}

这会导致语法错误类型不匹配:无法从 map 转换为 map 。我必须在此处放置什么才能获取 map ?

最佳答案

您不想.collect任何东西。您想要找到第一个与谓词匹配的映射。

所以你应该使用.findFirst()而不是.collect()

toMap() 用于从流中的元素构建 Map

但您不想这样做,每个元素已经是一个 Map

关于java - 在 map java流列表中查找 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48224645/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com