这段简单的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));
}
}它应该打印true,因为2在集合中,但是它打印false。为什么?
$ javac A.java && java A
false发布于 2013-06-04 00:48:05
当您说s.contains(2)时,它会搜索2,缺省情况下它是一个int,它被装箱为Integer。但是您存储的对象是Long。因此,它返回false
请尝试使用s.contains(Long.valueOf(2))。
https://stackoverflow.com/questions/16901717
复制相似问题