Questo codice Java semplice aggiunge 2
ad un insieme di long
, e stampa in seguito se 2
è un membro del set:Il codice Java che utilizza HashSet di long non funziona?
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));
}
}
Dovrebbe stampare true
dal 2
è nel set, ma invece esso stampa false
. Perché?
$ javac A.java && java A
false
Provare a utilizzare un oggetto 'Long' invece di una primitiva' long'. –
@LuiggiMendoza - Una primitiva 'lunga' avrebbe funzionato bene a causa dell'autoboxing. Il problema è che era un primitivo 'int'. –
Siamo spiacenti, hai ragione. Il letterale 2 è stato trattato come 'int', quindi autoboxed in' Integer'. –