之前写过一个代码,用到了Set
集合,判断了如果某个元素不存在就添加到集合中。今天翻看代码又看到了IDEAUnnecessary 'contains()' check
爆黄提示。
来一段测试代码:
public class SetTest {
public static void main(String[] args) {
Set<Integer> set = new HashSet<>();
int i = 1;
setAdd(set, i);
// if判断不包含的元素和添加的元素不同,无提示
if (!set.contains(1)) {
set.add(2);
}
System.out.println(set);
}
private static void setAdd(Set<Integer> set, int i) {
// Unnecessary 'contains()' check if判断不包含的元素和添加的元素相同,爆黄提示
if (!set.contains(i)) {
set.add(i);
}
}
}
Unnecessary 'contains()' check
不必要的‘contains()’检查,也就是说IDEA认为setAdd
函数中的contains
判断(注意if
里面!
取反了,判断存在的话不会提示,只有判断不存在才可能提示)是没有必要的。因为Set
集合元素是唯一的,反复add
都不会影响结果,所以IDEA
觉得这个不存在的判断是可以不要的。
如果if
判断了元素不存在Set
集合中,且if
代码块只有一行往Set
集合里添加同一个元素的代码,就会爆这个提示,可以忽略不管。