Si dos String
s que son iguales no son realmente idénticos, entonces ¿por qué puedo usar cadenas como claves en un HashMap
sin usar el mismo objeto String
?¿Por qué puedo usar cadenas como claves en un HashMap?
String s1 = "Test";
String s2 = "Test";
System.out.println(s1 == s2); // should be false
System.out.println(s1.equals(s2)); // should be true
HashMap<String, String> map = new HashMap();
map.put(s1, "foo");
System.out.println(map.get(s2)); // should be "foo"--but why?
¿Tiene HashMap
tienen algún comportamiento especial para String
objetos? Si no, ¿por qué se pueden usar dos cadenas "diferentes" para poner y obtener valores de un hash?
Tenga en cuenta que 's1 == s2' será' verdadero' debido a la cadena interna. –
Entonces, ¿por qué es una práctica estándar usar '.equals()' para comparar 'String's? –
@Ted Hopp s1 == s2 será verdadero debido a * agrupamiento constante *. – EJP