gpt4 book ai didi

java - 从 MultiValueMap 获取具有相同键的所有对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:10:31 26 4
gpt4 key购买 nike

我有一个 MultiValueMap<Integer, Path> 我正试图从中获取[出于这个问题的目的而打印] 使用相同 key 放入 map 中的所有路径。

这是我目前的解决方案:

MultiValueMap<Integer, Path> duplicates = duplicateFinder.getDuplicates();

for (Map.Entry<Integer, Object> entry: duplicates.entrySet()) {
final Integer key = entry.getKey();
final Object obj = entry.getValue();
for (Object o: (LinkedList)((ArrayList)entry.getValue()).get(0))
System.out.println(o);
System.out.println();
}

我觉得我的解决方案很危险(强制转换和魔数(Magic Number) 0)并且想避免它。如何以更具可读性/安全性的方式实现预期结果?

最佳答案

条目集似乎是用一个不幸的签名声明的。但是您可以改为遍历键,然后调用 getCollection对于每个:

for (Integer key : duplicates.keySet()) {
Collection<Path> paths = duplicates.getCollection(key);
System.out.println("Paths for " + key);
for (Path path : paths) {
System.out.println(" " + path);
}
System.out.println();
}

(请注意,Guava 的 Multimap 将允许您改用 duplicates.asMap().entrySet(),并且每个条目将有一个 Collection<V> 作为值...)

关于java - 从 MultiValueMap 获取具有相同键的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398454/

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