为什么不映射#removeAll(Collection <?>)?

Pre*_*raj 17 java collections

为什么MapJava中的接口没有removeAll(Collection<?> c)像删除密钥的方法map.remove(Object)

我知道我可以随时做map.keySet().removeAll(..)..但这是一个Map没有的原因removeAll()并鼓励我们一起去map.keySet().removeAll(..)吗?

z7s*_*g Ѫ 17

集合API背后的理念是尽可能小而简单.Map上的Collection视图允许您已经执行此操作,因此不需要额外的方法.

的keySet方法返回一个视图的地图.键集上的操作反映在地图上.

关于界面设计的更一般的问题:为什么界面X没有方便的方法Y?Martin Fowler对MinimalInterface vs HumaneInterface的讨论更深入地论述了一点.