欢迎光临
我们一直在努力

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 等方法先转换成匹配的类型

  • 赞(0)
    未经允许不得转载:171主机测评 » Java 常用类 - contains 方法类型匹配
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址