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

时间:2013-01-06 18:27:22

标签: java android

我有两个LinkedHashMap<String, MyType>,其中键可以是常见的(例如,第一个地图中的键可以是“键”,第二个地图上的键也可以是“键”。我需要比较这两个地图,当键是等于我想要创建新对象,其中firsMapEntry.getValue() secondMapEntry.getValue()是新对象[new MyObject(firsMapEntry.getValue(), secondMapEntry.getValue())]的属性。地图位于Collection中,因此我会遍历集合。

这是我的来源:

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);

        }
    }

方法的返回类型为List<Map<String, MyObject>>。 我不知道我的方法是否有效,但如何比较两个键并从值创建新对象。我们将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

Map.Entry有一个名为getKey()的方法,使用此方法获取密钥。
由于您的密钥是字符串使用,Object.equals()compare them,请不要使用'==',因此:

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