当前位置: 首页 > 面试题库 >

通过按键加入两张地图

姚培
2023-03-14
问题内容

我有两张地图:

Map<Integer, String> mapOne = {(1,"a"), (2, "b")};
Map<Integer, Double> mapTwo = {(1,10.0), (2,20.0)};

我想通过Integer值将此映射组合为一个,因此结果映射为

Map<String, Double> mapResult = {("a",10.0), ("b",20.0)};

有什么方法比遍历条目集更容易做到这一点?


问题答案:

假设两个映射的键匹配并且映射具有相同数量的条目,那么使用Java 8可以用以下代码一行编写它:

Map<String, Double> map = mapOne.entrySet().stream()
                            .collect(toMap(e -> e.getValue(),
                                           e -> mapTwo.get(e.getKey())));

因此,您从第一个地图开始并创建一个新地图,其中键是mapOne的值,而值是mapTwo中的对应值。

从技术上讲,这在某种程度上等同于迭代第一个映射的条目集。

注意:要求 import static java.util.stream.Collectors.toMap;



 类似资料:
  • 问题内容: 我有三张桌子 物品表 分类表 用户表 我想显示其类别名称而不是category_id和user_name而不是user_id的文章,我尝试像这些查询一样工作! 但是我想用口才来做。拜托,我该怎么办? 问题答案: 使用Eloquent,它非常容易检索关系数据。在Laravel 5中使用您的场景检查以下示例。 我们有三种模型: 1)文章(属于用户和类别) 2)类别(有很多文章) 3)用户(

  • 问题内容: 我正在尝试检索两组信息(一个查询中该图的红色和蓝色部分)。 我以为我可以使用下面所述的sql来做到这一点,但是当TableC没有记录时,它什么也不会返回。如果TableC没有记录,我仍然希望该查询向我返回BLUE区域指示的结果。 从表A中选择A. * 加入TableB B ON(A.id = B.a_id) 联接表C C ON(A.id = C.a_id) 感谢任何指针,以向我返回红色

  • 我必须测试一个用Spring注入两个映射的类。我想模拟两张地图。我使用模拟符号如下: 但我得到以下错误:

  • 问题内容: 只做一次击键并让eclipse组织所有java类中的所有导入,而不只是您正在查看的类,这不是很好吗?这可能吗?有按键吗? 问题答案: 在包资源管理器中选择项目,然后按+ + (与单个类版本相同的击键)。应该适用于包裹等

  • 所以我有两个相同的映射,字符串作为键,整数作为值,我知道在某些事件之后,map2中只有1个值递增1。 所以我的问题是如何返回“第二”键,因为它的值增加了1。

  • 问题内容: 如何通过两个地图的值比较?我有两个包含相等值的地图,并希望通过它们的值进行比较。这是一个例子: 我应该如何更改代码以获取真实信息? 问题答案: 您尝试使用串联构造不同的字符串将失败,因为它是在编译时执行的。这些地图都有一对。每对将使用相同的字符串引用将“ foo”和“ barbar”作为键/值。 假设您确实要比较值集而不需要任何键的引用,则只是以下一种情况: 这 可能 是比较有将工作-