我在项目中使用普通的旧HashSet
实现。
我想这段代码
if (!collection.contains(someId)) {
collection.add(someId)
// do smth
}
可以轻松替换为以下代码
if (collection.add(someId)) {
// do smth
}
没有任何副作用吗?我对吗?
最佳答案
对于HashSet
(或任何Set
实现),您是正确的,两个代码段都是等效的。
但是,对于任何Collection
都不是这样(并且由于您的标题为Replace “contains” with “add” in collections
,所以我认为值得一提)。例如,由于List
允许重复,因此add
的true
始终返回List
。因此,您不能将contains
替换为add
。