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

相关推荐
许彰午3 小时前
14_Java泛型完全指南
java·windows·python
智慧物业老杨3 小时前
司法绿色通道下的物业纠纷数智化解决方案——基于“三优先“机制的全流程技术落地实践
java·django
2601_961194023 小时前
2026初级会计实务公式总结大全|计算题公式手册PDF
java·spring·eclipse·pdf·tomcat·hibernate
做个文艺程序员3 小时前
第1篇:K8s 核心概念精讲:Pod、Deployment、Service 与 Namespace——Java 开发者快速上手指南
java·云原生·容器·kubernetes·容器编排
小欣加油5 小时前
leetcode3751 范围内总波动值I
java·数据结构·c++·算法·leetcode
闪电悠米6 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf
星轨zb6 小时前
LangChain4j 集成 Spring Boot:会话记忆 NPE 的根源与 ChatMemoryProvider 正确配置
java·spring boot·后端·langchain4j
JAVA9656 小时前
JAVA面试-并发篇 05-并发包AQS队列实现原理是什么
java·开发语言·面试
JAVA面经实录9176 小时前
RocketMQ全套学习知识手册
java·kafka·rabbitmq·rocketmq
phltxy6 小时前
Spring AI 从提示词到多模态
java·人工智能·spring