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