Dog*_*Dog 14 java hashset long-integer
这个简单的Java代码添加2到一组long,然后打印是否2是集合的成员:
import java.util.*;
class A {
public static void main(String[] args) {
HashSet<Long> s = new HashSet<Long>();
long x = 2;
s.add(x);
System.out.println(s.contains(2));
}
}
Run Code Online (Sandbox Code Playgroud)
它应该打印,true因为2它在集合中,而是打印false.为什么?
$ javac A.java && java A
false
Run Code Online (Sandbox Code Playgroud)
Den*_*ret 21
你的集合包含Long你正在寻找的实例Integer(在需要的int时候装箱的类型Object).
测试
System.out.println(s.contains(Long.valueOf(2)));
Run Code Online (Sandbox Code Playgroud)
要么
System.out.println(s.contains(2L));
Run Code Online (Sandbox Code Playgroud)
当你说s.contains(2),它搜索2默认情况下是一个int,它被装箱Integer.但是你存储的对象是Long.所以,它返回false
请尝试使用s.contains(Long.valueOf(2)).
| 归档时间: |
|
| 查看次数: |
7892 次 |
| 最近记录: |