Diferencia entre el método keySet() vs value() en Java Map

Map Interface está presente en el paquete Java.util, que proporciona principalmente tres métodos KeySet(), entrySet() y values(). Estos métodos se utilizan para recuperar las claves del mapa, los pares clave-valor del mapa y los valores del mapa, respectivamente. Dado que estos métodos son parte de la interfaz del mapa, podemos usar estos métodos con todas las clases que implementan la interfaz del mapa, como TreeMap , HashMap y LinkedHashMap .

Para descubrir las diferencias, primero analicémoslas individualmente conceptualmente, seguido de la implementación para descubrir las principales diferencias entre ellas. 

Método 1: método keySet() 

Este método se utiliza para devolver una vista de conjunto de las claves contenidas en este mapa. El conjunto está respaldado por el mapa, por lo que los cambios en el mapa se reflejan en el conjunto y viceversa.

Sintaxis:

Set keySet()

Parámetros: Este método no tiene argumento.

Devoluciones: este método devuelve un conjunto que contiene claves del mapa especificado.

Implementación:

Ejemplo

Java

// Java program demonstrating use of keySet() method
 
// Importing HashMap, Iterator, MAp and Stream classes
// from java.util package
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
 
// Class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Creating object of Map Class
        // Declaring object of Interfere and string type
        Map<Integer, String> map = new HashMap<>();
 
        // Adding the elements to the objects
        // Elements here are key-value pairs in the map
 
        // Custom input entries
        map.put(1, "Geeks");
        map.put(2, "For");
        map.put(3, "Geeks");
 
        // Now, different ways of iteration are illustrated
        // to showcase keySet() method
 
        // Way 1
        // Iterating the keySet() using iterator
 
        // Creating an object of Integer type
        Iterator<Integer> itr = map.keySet().iterator();
 
        // Condition check where hasNext() method holds true
        // till there is single element remaining in the List
        while (itr.hasNext()) {
 
            // Print all the elements(key-value pairs)
            System.out.print(itr.next() + " ");
        }
 
        // New line
        System.out.println();
 
        // Way 2
        // Iterating the keySet()
        // using for loop
        for (Integer key : map.keySet()) {
 
            // Print all the key-value pairs
            System.out.print(key + " ");
        }
 
        // New line
        System.out.println();
 
        // Way 3
        // Iterating over the keySet() by
        // converting the map to the string
        // using the toString() method
        System.out.println(map.keySet().toString());
    }
}
Producción

1 2 3 
1 2 3 
[1, 2, 3]

Método 2: método de valores() 

El método java.util.HashMap.values() de la clase HashMap en Java se usa para crear una colección a partir de los valores del mapa. Básicamente, devuelve una vista de colección de los valores en HashMap.

Sintaxis: 

Hash_Map.values()

Parámetros: El método no acepta ningún parámetro.

Valor devuelto: el método se utiliza para devolver una vista de colección que contiene todos los valores del mapa.

Implementación: a continuación se muestra el programa Java usando el método  de valores()

Ejemplo 

Java

// Java program demonstrating use of values() method
 
// Importing several classes from
// java.util package
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
 
// Class
// Main class
public class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
        // Making map of Integer keys and String values
        Map<Integer, String> map = new HashMap<>();
 
        // Adding the elements to the above object
        // Declaring object of Integer and String type
 
        // Elements here are key-value pairs
        // Custom input entries
        map.put(1, "Geeks");
        map.put(2, "For");
        map.put(3, "Geeks");
 
        // values() method implemented by
        // demonstrating different ways of traversal
 
        // Way 1
        // Iterating the values() method
        // using iterator
        Iterator itr = map.values().iterator();
 
        // Condition check using hasNet() method which
        // holds true till there is single element remaining
        while (itr.hasNext()) {
            System.out.print(itr.next() + " ");
        }
        System.out.println();
 
        // Way 2
        // Iterating the values() method
        // using for each loop
        for (String key : map.values()) {
            System.out.print(key + " ");
        }
        System.out.println();
 
        // Way 3
        // iterating over the values() method
        // by converting the map to the string
        // using the toString() method
        System.out.println(map.values().toString());
    }
}
Producción

Geeks For Geeks 
Geeks For Geeks 
[Geeks, For, Geeks]

Ahora, finalmente, llegamos a la conclusión, veamos las diferencias entre el método keySet() y el método de valores() de la siguiente manera:  

método keySet() método de valores()
Este método devuelve la vista Conjunto de todas las claves presentes en el mapa, es decir, devuelve un conjunto de claves. Este método devuelve la vista de colección de todos los valores contenidos en el mapa.
Si se producen cambios en el mapa, también se pueden observar en el conjunto, ya que el mapa respalda un conjunto.  Si se producen cambios en el mapa, también se pueden observar en la colección, ya que el mapa respalda la colección. 
Este método se usa solo cuando necesitamos tratar con todas las claves presentes en el mapa. Este método se usa cuando solo necesitamos tratar con todos los valores presentes en el mapa.

Publicación traducida automáticamente

Artículo escrito por lavishgarg26 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *