public static void main(String[] args) {
Map<String, HashSet<String>> test = new HashMap<String, HashSet<String>>();
test.put("1", new HashSet<String>());
System.out.println(test);
System.out.println(test.get("1"));
if(test.get("1") == null){
System.out.println("Hello world");
}
}
Il primo println mi {1=[]}
ottiene il secondo mi viene []
che sto cercando di stampare "Ciao mondo", ma l'istruzione if non sta attraversando.
L'Hashset vuoto, []
non è uguale a null
?Come utilizzare HashSet java vuoto nell'istruzione if?
Come utilizzare l'HashSet vuoto in questa istruzione if?
Non si dispone di un sacchetto ('null') uguale a quello di un sacchetto vuoto (' Hashset 'vuoto)? (Nota: sto usando il significato del mondo reale di "borsa" qui, non la struttura dati.) –
In Java, '==' su due oggetti (cioè non primitivi) ** sempre ** confronta per vedere se sono riferimenti allo stesso oggetto (o entrambi sono nulli). Alcune lingue hanno la possibilità di ridefinire '==' in alcuni casi in modo tale che possa confrontare i contenuti. Java no. (Java normalmente usa 'equals()' per confrontare i contenuti, ma questo non ti aiuterà qui perché 'equals()' su un 'HashSet' non considera un set vuoto uguale a un riferimento nullo. in quel modo, ma non lo fecero.) – ajb