Open In App

Difference Between keySet() vs value() Method in Java Map

Improve
Improve
Like Article
Like
Save
Share
Report

Map Interface is present in Java.util package, which provides mainly three methods KeySet(),entrySet() and values(). These methods are used to retrieve the keys of the map, key-value pairs of the map, and values of the map respectively. Since these methods are part of Map Interface, so we can use can these methods with all the classes implementing the map interface like TreeMap, HashMap, and LinkedHashMap.

In order to figure out the differences lets us first go through them individually conceptually followed by the implementation to figure out major differences between them. 

Method 1: keySet() method 

This method is used to return a Set view of the keys contained in this map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa.

Syntax:

Set keySet()

Parameters: This method has no argument.

Returns: This method returns a set containing keys of the specified map.

Implementation:

Example

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());
    }
}


Output

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

Method 2: values() method 

The java.util.HashMap.values() method of HashMap class in Java is used to create a collection out of the values of the map. It basically returns a Collection view of the values in the HashMap.

Syntax: 

Hash_Map.values()

Parameters: The method does not accept any parameters.

Return Value: The method is used to return a collection view containing all the values of the map.

Implementation: Below is the Java Program using values() method 

Example 

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());
    }
}


Output

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

Now finally landing onto the conclusion, let us see the differences between keySet() Method and values() Method is as follows:  

keySet() method values() method
This method returns the Set view of all the keys present in the map, ie it returns a set of keys. This method returns the collection view of all the values contained in the map.
If any changes happen to the map, then they can be observed in the set also, as a set is backed up by the map.  If any changes happen to the map, then they can be observed in the collection also, as the collection is backed up by the map. 
This method is used only when we need to deal with all the keys present in the map. This method is used when we only need to deal with all the values present in the map.

 



Last Updated : 07 Mar, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads