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

相关推荐
Skilce6 分钟前
ZrLog 博客系统部署指南(无 War 包版,Maven 构建 + 阿里云镜像优化)
java·阿里云·maven
敲代码的嘎仔13 分钟前
Java后端开发——真实面试汇总(持续更新)
java·开发语言·程序人生·面试·职场和发展·八股
迈巴赫车主21 分钟前
蓝桥杯20560逃离高塔
java·开发语言·数据结构·算法·职场和发展·蓝桥杯
泯仲29 分钟前
Ragent项目7种设计模式深度解析:从源码看设计模式落地实践
java·算法·设计模式·agent
wangchunting1 小时前
Jvm-垃圾收集器
java·开发语言·jvm
weixin_464307631 小时前
QT智能指针
java·数据库·qt
架构师沉默1 小时前
程序员如何避免猝死?
java·后端·架构
Zzxy1 小时前
快速搭建SpringBoot项目并整合MyBatis-Plus
java·spring boot
星如雨グッ!(๑•̀ㅂ•́)و✧1 小时前
WebFlux onErrorContinue 和 onErrorResume使用详解
java·人工智能
电商API&Tina1 小时前
电商数据采集API接口||合规优先、稳定高效、数据精准
java·javascript·数据库·python·json