Поскольку вы используете Map<String, List<Object>>
, вы действительно ищете мультикарту . Для этого я настоятельно рекомендую использовать стороннюю библиотеку, такую как Google Guava - см. Guava's Multimaps
.
Multimap<String, Object> myMultimap = ArrayListMultimap.create();
// fill it
myMultimap.put("hello", "hola");
myMultimap.put("hello", "buongiorno");
myMultimap.put("hello", "สวัสดี");
// retrieve
List<String> greetings = myMultimap.get("hello");
// ["hola", "buongiorno", "สวัสดี"]
Обновление Java 8: я больше не убежден, что каждый Map<K, SomeCollection<V>>
должен быть переписан как мультикарта. В наши дни довольно легко получить то, что вам нужно без гуавы, благодаря Map#computeIfAbsent()
.
Map<String, List<Object>> myMap = new HashMap<>();
// fill it
myMap.computeIfAbsent("hello", ignored -> new ArrayList<>())
.addAll(Arrays.asList("hola", "buongiorno", "สวัสดี");
// retrieve
List<String> greetings = myMap.get("hello");
// ["hola", "buongiorno", "สวัสดี"]