Я хочу объединить два HashMaps.
Я мог бы использовать map1.putAll (map2); но я не хочу перезаписывать ключи, так как да, у них будут конфликтующие ключи.
Таким образом, ключи на каждой карте будут такими:
word1 word1
word2 word2
word3 word3
и когда я объединяю их, я бы хотел:
word1
word2
word3
word4
word5
word6
Он может просто перезаписывать ключи, если ключи являются инкрементными, и использовать первый текст ключа, т. Е. Читает одну из пар и извлекает слово «word», поэтому каждая из них будет word1 word2.
Но другое предостережение, о котором я думал в мобильной среде и о том, что я могу сделать, не поднимая экран загрузки или даже не способный на это.
Так что для начала я полагаю:
HashMap<String, Object> hm1 = new HashMap<String, Object>();
hm1.put("key1", "a");
hm1.put("key2", "a");
hm1.put("key3", "a");
HashMap<String, Object> hm2 = new HashMap<String, Object>();
hm2.put("key1", "1");
hm2.put("key2", "2");
hm2.put("key3", "3");
HashMap<String, Object> newHM = new HashMap<String, Object>();
String keyWord = "";
for (String s: hm1.keySet()) {
keyWord = s;
break;
}
int count = 0;
for (Object o : hm1.values()) {
newHM.put(keyWord+count, o);
}
for (Object o : hm2.values()) {
newHM.put(keyWord+count, o);
}
Но мне интересно, насколько это эффективно? Это выглядит правильно, и есть ли лучший способ сделать это? Я не хочу использовать лишний объект без необходимости