Dado un HashMap y una clave en Java, la tarea es verificar si esta clave existe en el HashMap o no.
Ejemplos:
Input: HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks}, key = 2 Output: true Input: HashMap: {1=G, 2=e, 3=e, 4=k, 5=s}, key = 10 Output: false
- Usando iterador (no eficiente) :
- Obtenga el HashMap y la clave
- Cree un iterador para iterar sobre HashMap utilizando el método HashMap.iterate().
- Iterar sobre HashMap utilizando el método Iterator.hasNext().
- Mientras itera, verifique que la clave en esa iteración sea igual a la clave especificada. La clave de entrada del Mapa se puede obtener con la ayuda del método entry.getKey().
- Si la clave coincide, establezca el indicador como verdadero.
- El valor de la bandera después de la iteración contiene el resultado.
A continuación se muestra la implementación del enfoque anterior:
Programa 1:
// Java program to check if a key exists
// in a HashMap or not
import
java.util.*;
public
class
GFG {
public
static
void
main(String[] args)
{
// Create a HashMap
HashMap<Integer, String>
map =
new
HashMap<>();
// Populate the HashMap
map.put(
1
,
"Geeks"
);
map.put(
2
,
"ForGeeks"
);
map.put(
3
,
"GeeksForGeeks"
);
// Get the key to be removed
int
keyToBeChecked =
2
;
// Print the initial HashMap
System.out.println(
"HashMap: "
+ map);
// Get the iterator over the HashMap
Iterator<Map.Entry<Integer, String> >
iterator = map.entrySet().iterator();
// flag to store result
boolean
isKeyPresent =
false
;
// Iterate over the HashMap
while
(iterator.hasNext()) {
// Get the entry at this iteration
Map.Entry<Integer, String>
entry
= iterator.next();
// Check if this key is the required key
if
(keyToBeChecked == entry.getKey()) {
isKeyPresent =
true
;
}
}
// Print the result
System.out.println(
"Does key "
+ keyToBeChecked
+
" exists: "
+ isKeyPresent);
}
}
Producción:HashMap: {1=Geeks, 2=ForGeeks, 3=GeeksForGeeks} Does key 2 exists: true
Programa 2: Para mostrar por qué no se sugiere este método. Si HashMap contiene valores nulos, este método generará NullPointerException. Esto hace que este método sea un método no sugerible para usar.
// Java program to check if a key exists
// in a HashMap or not
import
java.util.*;
public
class
GFG {
public
static
void
main(String[] args)
{
try
{
// Create a HashMap
HashMap<Integer, String>
map =
new
HashMap<>();
// Populate the HashMap
map.put(
1
,
"Geeks"
);
map.put(
2
,
"ForGeeks"
);
map.put(
null
,
"GeeksForGeeks"
);
// Get the key to be removed
int
keyToBeChecked =
2
;
// Print the initial HashMap
System.out.println(
"HashMap: "
+ map);
// Get the iterator over the HashMap
Iterator<Map.Entry<Integer, String> >
iterator = map.entrySet().iterator();
// flag to store result
boolean
isKeyPresent =
false
;
// Iterate over the HashMap
while
(iterator.hasNext()) {
// Get the entry at this iteration
Map.Entry<Integer, String>
entry
= iterator.next();
// Check if this key is the required key
if
(keyToBeChecked == entry.getKey()) {
isKeyPresent =
true
;
}
}
// Print the result
System.out.println(
"Does key "
+ keyToBeChecked
+
" exists: "
+ isKeyPresent);
}
catch
(Exception e) {
System.out.println(e);
}
}
}
Producción:HashMap: {null=GeeksForGeeks, 1=Geeks, 2=ForGeeks} java.lang.NullPointerException
- Usando el método HashMap.containsKey (eficiente) :
- Obtenga el HashMap y la clave
- Compruebe si la clave existe en HashMap o no utilizando el método HashMap.containsKey(). Si la clave existe, establezca el indicador como verdadero.
- El valor de la bandera contiene el resultado.
A continuación se muestra la implementación del enfoque anterior:
Programa 1:
// Java program to check if a key exists
// in a HashMap or not
import
java.util.*;
public
class
GFG {
public
static
void
main(String[] args)
{
// Create a HashMap
HashMap<Integer, String>
map =
new
HashMap<>();
// Populate the HashMap
map.put(
1
,
"Geeks"
);
map.put(
2
,
"ForGeeks"
);
map.put(
null
,
"GeeksForGeeks"
);
// Get the key to be removed
int
keyToBeChecked =
2
;
// Print the initial HashMap
System.out.println(
"HashMap: "
+ map);
// Check is key exists in the Map
boolean
isKeyPresent = map.containsKey(keyToBeChecked);
// Print the result
System.out.println(
"Does key "
+ keyToBeChecked
+
" exists: "
+ isKeyPresent);
}
}
Producción:HashMap: {null=GeeksForGeeks, 1=Geeks, 2=ForGeeks} Does key 2 exists: true
Publicación traducida automáticamente
Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA