【问题标题】:Create a new Map using two different maps [closed]使用两个不同的地图创建一个新地图 [关闭]
【发布时间】:2014-07-22 20:47:50
【问题描述】:

如何使用两个现有地图中的值创建新地图。

第一张地图

Map <ID, name>

第二张地图

Map <ID, email>

ID 是同一个对象。

我如何遍历这两个地图,以获取姓名和电子邮件以创建新地图,例如 以下 ?假设 String 值是唯一的。

Map <name, email>

【问题讨论】:

  • 是姓名和电子邮件字符串还是对象?
  • 小心!虽然 ID 可能是唯一的,但名称却不是。如果您按照您的要求进行操作,并且有两个不同的用户,具有不同的 ID 值但名称相同,例如 {ID=1,name="John Smith"}{ID=2,name="John Smith"},那么在创建地图后,您将丢失其中一个电子邮件地址,您可以鉴于Map 迭代的随机顺序,不知道提前哪一个。你要求做的事情没有意义。
  • @Archangel33 ID 是对象,名称和电子邮件是字符串
  • @JimGarrison 是对的。我删除了我的答案,因为虽然很容易做到,但由于显而易见的原因,这不是一个聪明的主意。如果您真的想创建这样的映射,最好使用专门为您提供所需信息的代码,因为您已经有两个包含所需信息的映射,而是使用相同的键。
  • @JimGarrison 我以姓名、电子邮件为例。我正在尝试找出执行此操作的逻辑。

标签: java map


【解决方案1】:

假设该名称是唯一的,那么您可以这样做。

我还没有编译这个,但它应该给你一个粗略的想法。

Map<Object, Object> res = new Hashmap();
Set<Object> keys= firstMap.keySet();
for (Object key : keys) {
    res.put(firstMap.get(key), secondmap.get(key);
}

【讨论】:

  • 这对我有用。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-04-02
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多