gpt4 book ai didi

java - Android:比较两个 map 键,如果键相等则创建新对象

转载 作者:行者123 更新时间:2023-12-01 14:57:21 26 4
gpt4 key购买 nike

我有两个 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>> 。我不知道我的方法是否有效,但如何比较两个键并从值创建新对象。每一个帮助将不胜感激。谢谢。

最佳答案

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

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

关于java - Android:比较两个 map 键,如果键相等则创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14185315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com