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