この単純なJavaコードはlong
のセットに2
を追加し、その後2
が集合のメンバーであるかどうかを出力します。longのHashSetを使用するJavaコードが機能しません。
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));
}
}
2
がセットであるが、その代わりに、それはfalse
を出力しますので、それはtrue
を印刷する必要があります。どうして?
$ javac A.java && java A
false
'long'プリミティブの代わりに' Long'オブジェクトを使用してみてください。 –
@LuiggiMendoza - 「ロング」プリミティブはオートボックスのためうまくいっていました。問題は、それが 'int'プリミティブであったことです。 –
申し訳ありませんが、あなたは正しいです。リテラル2は 'int 'として扱われ、'整数'にオートボックスされました。 –