Java 替换“;包括「;加上;加上「;收藏?
我在我的项目中使用的是纯旧的Java 替换“;包括「;加上;加上「;收藏?,java,collections,Java,Collections,我在我的项目中使用的是纯旧的HashSet实现 我想这个代码 if (!collection.contains(someId)) { collection.add(someId) // do smth } 可以很容易地替换为以下代码 if (collection.add(someId)) { // do smth } 没有任何副作用?我说得对吗?对于HashMap,它用新值替换旧值 对于HashSet,该项不会被插入。正确,这将很好地工作。对于HashSet(或任何集实现)
HashSet
实现
我想这个代码
if (!collection.contains(someId)) {
collection.add(someId)
// do smth
}
可以很容易地替换为以下代码
if (collection.add(someId)) {
// do smth
}
没有任何副作用?我说得对吗?对于HashMap,它用新值替换旧值
对于HashSet,该项不会被插入。正确,这将很好地工作。对于
HashSet
(或任何集
实现),您是正确的,两个片段都是等效的
然而,这对于任何收藏都是不正确的(因为你的标题是在收藏中用“add”替换“contains”,我认为这是值得一提的)。例如,List
的add
总是返回true
,因为List
允许重复。因此,您不能将包含的替换为添加大是
if(collection.add(someId)){
//做smth
}
这将适用于Set
实现,没有问题,因为它们不允许重复值,但不适用于List
实现,因为它们允许重复项。如果您想知道该项以前存在,它很重要,否则不重要