Java Android:比较两个贴图键,如果键相等,则创建新对象

Java Android:比较两个贴图键,如果键相等,则创建新对象,java,android,Java,Android,我有两个LinkedHashMap,其中键可以是公共的(比如第一个映射中的键可以是“键”,第二个映射中的键也可以是“键”。我需要比较这两个映射,当键相等时,我想创建一个新对象,其中firsMapEntry.getValue()secondMapEntry.getValue()是新对象的属性[新建MyObject(firsMapEntry.getValue(),secondMapEntry.getValue())]。贴图位于集合中,因此我遍历集合 以下是我的消息来源: firstIterator

我有两个
LinkedHashMap
,其中键可以是公共的(比如第一个映射中的键可以是“键”,第二个映射中的键也可以是“键”。我需要比较这两个映射,当键相等时,我想创建一个新对象,其中
firsMapEntry.getValue()
secondMapEntry.getValue()是新对象的属性[
新建MyObject(firsMapEntry.getValue(),secondMapEntry.getValue())
]。贴图位于
集合中
,因此我遍历集合

以下是我的消息来源:

firstIterator = firsCollection.iterator();
secondIterator = secondCollection.iterator();

    while (firstIterator.hasNext() && secondIterator.hasNext()) {
        Map<String, MyType1> firsMap = firstIterator.next();
        Map<String, List<MyType2>> secondMap = secondIterator
                .next();

        firstMapIterator = firstMap.entrySet().iterator();
        secondMapIterator = secondMap.entrySet().iterator();

        while (firstMapIterator.hasNext() && secondMapIterator.hasNext()) {
            Map.Entry<String, MyType1> firstEntry = ((Map.Entry<String, MyType1>) firstMapIterator.next());
            Map.Entry<String, List<MyType2>> secondEntry = ((Map.Entry<String, List<MyType2>>) secondMapIterator.next());


           // Here I was trying to compare keys but unsuccessfuly

          // if keys are equal create new object

        My Object object = new MyObject(firsEntry.getValue(),
                    secondEntry.getValue());
                      Map<String, MyObject> map = new LinkedHashMap<String,MyObject(); map.put("key", object);

        }
    }
firstIterator=firsCollection.iterator();
secondIterator=secondCollection.iterator();
while(firstIterator.hasNext()&&secondIterator.hasNext()){
Map firsMap=firstIterator.next();
Map secondMap=second迭代器
.next();
firstMapIterator=firstMap.entrySet().iterator();
secondMapIterator=secondMap.entrySet().iterator();
while(firstMapIterator.hasNext()&&secondMapIterator.hasNext()){
Map.Entry firstEntry=((Map.Entry)firstMapIterator.next());
Map.Entry secondEntry=((Map.Entry)secondMapIterator.next());
//在这里,我试图比较钥匙,但没有成功
//如果关键点相等,则创建新对象
My Object Object=新的MyObject(firsEntry.getValue(),
secondEntry.getValue());
Map Map=newlinkedhashmap有一个名为
getKey()
的方法,使用此方法获取密钥。
由于您的密钥是一个字符串,请使用,
Object.equals()
to,不要使用“==”,因此:

    if(firstEntry .getKey().equals(secondEntry .getKey())){
    //they are equal
    }
else{
    //they are different
    }

你在哪里比较上面代码中的键?你删除了那部分并用注释替换了吗?是的,注释在哪里,我想要比较键。我有一些东西,比如if(firstkey.equals)(secondKey){…但是结果a我总是只有一个地图如果你在第一个地图中有地图条目
1,2
,在第二个地图中有
2,1
,怎么办?你使用
LinkedHashMap
,所以插入顺序对你来说似乎很重要;因此问题我做了,但结果我只有一个地图,我认为它不起作用。也许吧某处有个bug。谢谢你们,我终于在源代码中找到了错误。