Ключами карты могут быть значения 1 - 5, где каждый ключ не требуется, но если он отсутствует, необходимо объединить что-то, похожее на «- []».
Я немного использовал Java 8раньше, и я чувствую, что это можно сделать более эффективно с помощью stream () и collect (), но я чувствую, что требование внешнего списка отбрасывает меня.Приведенный ниже код работает, но кажется неправильным.
List<String> ids = Arrays.asList("1", "2", "3", "4", "5");
StringBuilder location = new StringBuilder();
ids.forEach(id -> {
List<String> addresses = map.get(id);
if (addresses != null) {
addresses.forEach(addr -> location.append(addr + " - "));
} else {
location.append(" [] - ");
}
});
Создает что-то похожее на местоположение в Колорадо:
US - CO - [] - CENTENNIAL -
В ответ Николасу K пример карты будет
{1=[US], 2=[CO], 5=[METROPOLITAN FOOTBALL STADIUM DISTRICT, REGIONAL TRANSPORTATION DISTRICT]}
и ожидается, что он получит вывод
US - CO - [] - [] - METROPOLITAN FOOTBALL STADIUM DISTRICT - REGIONAL TRANSPORTATION DISTRICT