Java 常用类 - contains 方法类型匹配
·
contains 方法类型匹配
1、案例引入
Set<Integer> nums = new HashSet<>();
nums.add(1);
nums.add(2);
nums.add(3);
Long i = 1L;
System.out.println(nums.contains(i));
System.out.println(nums.contains(i.intValue()));
# 输出结果
false
true
2、案例分析
- 第一行输出 false
nums.contains(i) 传入的是 Long 对象
HashSet 中存的都是 Integer 对象
contains 底层会调用 equals 判断类型
Integer.equals(Long) 永远返回 false(类型不同)
所以输出 false
- 第二行输出 true
i.intValue() 返回 int 基本类型(值为 1)
传入 contains 时会自动装箱成 Integer
集合里正好有 Integer 的 1
所以输出 true
3、小结
-
集合泛型明确类型后,保持 contains 方法参数类型一致
-
使用 intValue、longValue 等方法先转换成匹配的类型
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)