В Java, если у меня есть два объекта A и B, и оба содержат переменные класса для ссылочного идентификатора, а A также имеет тип переменной класса, B имеет местоположение переменной класса. Я пытаюсь построить карту с ключом в качестве типа и значение в качестве местоположения. В настоящее время я делаю это путем создания двух отдельных карт, одна карта (Map1) связывает ссылочный идентификатор с типом и создается путем итерации по списку объектов типа A, а другая карта (Map2) связывает ссылочный идентификатор с местоположением и создается перебирая список объектов типа B. Затем карты объединяются путем перебора набора ключей Map1 и поиска значения для ссылочного идентификатора, помещения его в качестве ключа в новую карту и получения значения местоположения. из Map2 и используя его в качестве значения для типа. Реализация показана ниже. Мой вопрос: есть ли более эффективный способ сделать этот алгоритм? Это не похоже на лучшую реализацию. Извините за двусмысленность - надеюсь, код прояснит вопрос.
Map<String, String> referenceIdToType = new HashMap<String, String>();
Map<String, String> referenceIdToLocation = new HashMap<String, String>();
for(Info info : infoList) {
referenceIdToType.put(info.getReferenceId(), info.getType());
}
for(Location loc : locationList) {
referenceIdToLocation.put(loc.getReferenceId(), loc.getLocation());
}
Map<String, String> typeToLocation = new HashMap<String, String>();
for(String referenceId : referenceIdToType.keySet()) {
typeToLocation.put(referenceIdToType.get(referenceId), referenceIdToLocation.get(referenceId));
}