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

相关推荐
SimonKing几秒前
JetBrains 重大变革:IDEA 2025.3 统一发行版发布,告别选择困难
java·后端·程序员
网安_秋刀鱼8 分钟前
【java安全】shiro反序列化1(shiro550)
java·开发语言·安全·web安全·网络安全·1024程序员节
降临-max8 分钟前
JavaWeb企业级开发---快速入门、请求响应、分层解耦
java·开发语言·笔记·学习
jiayong239 分钟前
Arthas 完全指南:原理与实战
java·spring·arthas
熊猫比分管理员12 分钟前
免费开源代码/免费搭建体育直播系统;赛程、直播、专家卖料三大核心全解析
java
摇滚侠20 分钟前
面试实战 问题三十五 Spring bean 的自动装配 介绍一下熟悉的几种设计模式 Java 四种线程池是哪些
java·spring·面试
2301_8059629325 分钟前
嘉立创EDA添加自己的元件和封装
java·开发语言
TimberWill32 分钟前
MinIO整合SpringBoot实现获取文件夹目录结构及文件内容
java·linux·springboot
崎岖Qiu35 分钟前
【设计模式笔记18】:并发安全与双重检查锁定的单例模式
java·笔记·单例模式·设计模式
曲莫终35 分钟前
spring.main.lazy-initialization配置的实现机制
java·后端·spring