【发布时间】:2016-06-24 19:46:35
【问题描述】:
Map<String, List<myStruct>> map1 = ...;
Map<String, List<myStruct>> map2 = ...;
myStruct 有 2 个字段:时间戳和数字。
我需要使用在 map1 和 map2 中找到的键创建一个新的 map3。对于每个键,每次 map1 和 map2 的时间戳匹配时,我都需要在 myStrcts 列表中添加一个新条目。该数字应等于 map1 的数字除以 map 2 的数字。
例如,如果他们每个人都有 1 个条目:
Map<String, List<myStruct>> map1 = < "Cat" , < <1pm, 10> <2pm, 6>, <3pm, 8>>;
Map<String, List<myStruct>> map2 = < "Cat" , < <1pm, 5> <2pm, 2>, <3pm, 1>>;
然后
Map<String, List<myStruct>> map3 = < "Cat" , < <1pm, 2> <2pm, 3>, <3pm, 8>>;
因为下午 1 点:10/5 = 2,下午 2 点:6/2 = 3,下午 3 点:8/1 = 8。
我尝试过使用 lambda 函数,但我想不出任何好的和高效的方法。
我现在正在做的是遍历 map1 中的每个条目,然后遍历 myStructs 的每个时间戳 - 将其与 map2 中的时间戳进行比较,如果时间戳相等,则将结果添加到映射 3。我试图找出一个更有效的解决方案。
【问题讨论】:
-
你能贴出你试过的代码吗?这将有助于消除重复工作。
-
另外,结果数可以是浮点值吗?如果下午 1 点的条目是 8 和 5,结果是 8/5。你想要浮点值还是整数?
-
顺便说一句,将Class/Object 称为‘struct’ 令人困惑。
-
@lucasvw 是的,它应该是一个浮点数。为了简单起见,我只是使用了这些示例。
-
@BasilBourque 对此感到抱歉!为未来着想。
标签: java dictionary hashmap java-8