mã Java đơn giản này cho biết thêm 2
để một bộ long
, và sau đó in dù 2
là thành viên của tập:Mã Java bằng cách sử dụng HashSet của thời gian không hoạt động?
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));
}
}
Nó nên in true
từ 2
là trong bộ này, nhưng thay vào đó nó in false
. Tại sao?
$ javac A.java && java A
false
Thử sử dụng đối tượng 'Long' thay vì nguyên thủy' long'. –
@LuiggiMendoza - Một nguyên thủy dài hạn sẽ hoạt động tốt vì hộp số tự động. Vấn đề là nó là một nguyên thủy 'int'. –
Xin lỗi, bạn nói đúng. Chữ 2 được xử lý như 'int' do đó được tự động đóng hộp thành' Integer'. –