【发布时间】:2013-06-03 16:44:46
【问题描述】:
这个简单的 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
【问题讨论】:
-
尝试使用
Long对象而不是long原语。 -
@LuiggiMendoza - 由于自动装箱,
long原语可以正常工作。问题是它是一个int原语。 -
对不起,你是对的。文字 2 被视为
int,因此自动装箱为Integer。
标签: java long-integer hashset