Скажем, у нас есть Map<Key, Collection<Value>> myMap
и метод, который удаляет значение из коллекции, связанной с ключом. Если удаление значения выходит из коллекции пустой, мы хотим избавиться от key
записи в карте:Удалить ключ, если значение пуста
List<Value> removeValue(Key key, Value value) {
List<Value> v = myMap.get(key);
if (v != null) {
v.remove(value);
if (v.isEmpty())
myMap.remove(key);
}
return v;
}
Есть ли Java 8 способы достижения описанного поведения с однострочником или коротким способом ?
Ничто не приходит в голову сразу. Это может быть лучше подходит для http://codereview.stackexchange.com/. – markspace
Ваш оригинальный метод кажется неправильным, но он все равно не слишком подробный ... – manouti
'if (v.size() == 1) myMap.remove (key);' выглядит неправильно. Что делать, если список не содержит значения? – smac89