Set集合进行!contains判断IDEA提示Unnecessary ‘contains()‘ check

之前写过一个代码,用到了Set集合,判断了如果某个元素不存在就添加到集合中。今天翻看代码又看到了IDEAUnnecessary 'contains()' check爆黄提示。

来一段测试代码:

java 复制代码
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集合里添加同一个元素的代码 ,就会爆这个提示,可以忽略不管。

相关推荐
励志码农9 分钟前
JavaWeb 30 天入门:第二十三天 —— 监听器(Listener)
java·开发语言·spring boot·学习·servlet
@小匠14 分钟前
Spring Cache 多租户缓存隔离解决方案实践
java·spring·缓存
智码看视界1 小时前
老梁聊全栈系列:(阶段一)架构思维与全局观
java·javascript·架构
黎宇幻生1 小时前
Java全栈学习笔记33
java·笔记·学习
BillKu4 小时前
推荐 Eclipse Temurin 的 OpenJDK
java·ide·eclipse
Morri34 小时前
[Java恶补day53] 45. 跳跃游戏Ⅱ
java·算法·leetcode
悟能不能悟4 小时前
eclipse怎么把项目设为web
java·eclipse
乂爻yiyao4 小时前
java 代理模式实现
java·开发语言·代理模式
2301_770373734 小时前
Java集合
java·开发语言
哈喽姥爷5 小时前
Spring Boot---自动配置原理和自定义Starter
java·spring boot·后端·自定义starter·自动配置原理