Java 使用两个不同的地图创建新地图

Java 使用两个不同的地图创建新地图,java,map,Java,Map,如何使用两个现有贴图中的值创建新贴图 第一张地图 Map <ID, name> Map 第二张地图 Map <ID, email> Map ID是同一个对象 我如何迭代这两个地图,以获取名称和电子邮件来创建一个新的地图,如 在下面假设字符串值是唯一的 Map <name, email> Map 假设名称是唯一的,那么您可以这样做 我还没有编译过这篇文章,但它应该会给你一个大概的想法 Map<Object, Object> res = ne

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

第一张地图

Map <ID, name>
Map
第二张地图

Map <ID, email>
Map
ID是同一个对象

我如何迭代这两个地图,以获取名称和电子邮件来创建一个新的地图,如 在下面假设字符串值是唯一的

Map <name, email>
Map

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

我还没有编译过这篇文章,但它应该会给你一个大概的想法

Map<Object, Object> res = new Hashmap();
Set<Object> keys= firstMap.keySet();
for (Object key : keys) {
    res.put(firstMap.get(key), secondmap.get(key);
}
Map res=newhashmap();
Set keys=firstMap.keySet();
用于(对象关键点:关键点){
res.put(firstMap.get(key),secondmap.get(key);
}

是名称和电子邮件字符串还是对象?请小心!虽然ID可能是唯一的,但名称不是唯一的。如果您按照要求操作,并且有两个不同的用户,具有不同的ID值,但名称相同,例如
{ID=1,name=“John Smith”}
{ID=2,name=“John Smith”}
,然后在创建地图后,您将丢失其中一个电子邮件地址,并且由于
map
迭代的随机顺序,您无法提前知道是哪一个。您要求执行的操作没有意义。@Archangel33 ID是对象,名称和电子邮件是Strings@JimGarrison是的。我删除了我的答案,因为虽然很容易做,但我这不是一个明智的想法,原因很明显。如果你真的想创建这样一个映射,最好使用代码来明确地给出你想要的,因为你已经有了两个包含所需信息的映射,而使用同一个键。@JimGarrison我以name,email为例。我正在试图找出实现这个映射的逻辑做这个动作。这对我有用。谢谢。