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.
Method 1: 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.
Example:
// Java program demonstrating use of values() method // Importing all input output classes import java.io.*;
// Importing HashMap, Iterator, Map and Stream classes // from the 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 a Map object
// Declaring object of String and integer type
Map<Integer, String> map = new HashMap<>();
// Now, adding the elements to the object created
// Elements here are key- \value pairs
// Custom input objects
map.put( 1 , "Geeks" );
map.put( 2 , "For" );
map.put( 3 , "Geeks" );
// Showcasing different ways to illustrate
// values() method
// Way 1 - Using iterator
// Iterating over the object elements of the
// showcasing the values() method using iterator
// Creating an object of Integer type
Iterator<String> itr = map.values().iterator();
// Condition check which holds true till
// there is single elementusing hasNext() method
while (itr.hasNext()) {
// Traversing across the elements
// using next() method
// Printing the elements in the object
System.out.print(itr.next() + " " );
}
// New line
System.out.println();
// Way 2 - Using loops
// Iterating over the elements using for-each loop
// to showacase value() method
for (String key : map.values()) {
// Printing all the element in object
// key-value pairs
System.out.println(key);
}
// New line
System.out.println();
// Iterating over the values() method by
// converting the Map to the string
System.out.println(map.values().toString());
}
} |
Geeks For Geeks Geeks For Geeks [Geeks, For, Geeks]
Method 2: entrySet() method
The java.util.HashMap.entrySet() method in Java is used to create a set out of the same elements contained in the hash map. It basically returns a set view of the hash map, or we can create a new set and store the map elements into them.
Syntax:
hash_map.entrySet()
Parameters: The method does not take any parameters.
Return Value: The method returns a set having the same elements as the hash map.
Implementation:
Example
// Java program demonstrating use of entrySet() method // Importing Map,Stream, hashMap and Iterator classes // from the 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 an object of Map class
// Declaring object of Integer and String type
Map<Integer, String> map = new HashMap<>();
// Now, adding the elements to the object
// Here elements are key-value pairs to map
// Custom input elements
map.put( 1 , "Geeks" );
map.put( 2 , "For" );
map.put( 3 , "Geeks" );
// Now, proposing different cases in which we will
// be iterating over the elements using entrySet()
// Case 1
// Iterating the key value pairs
// using for each loop
for (Map.Entry<Integer, String> entry :
map.entrySet()) {
// Corresponding key
Integer key = (Integer)entry.getKey();
// Corresponding pair
String value = entry.getValue();
// Printing all the corresponding key-value
// pairs
System.out.println(key + "=" + value);
}
// Case 2
// Iterating the key-value pairs
// using iterator
Iterator<Map.Entry<Integer, String> > itr
= map.entrySet().iterator();
// Condition check using hasNext() method holding
// true till there is single entry remaining
while (itr.hasNext()) {
// Go on printing key-value pairs
System.out.println(itr.next());
}
// Case 3
// Iterating and printing the key-value pairs
// using Stream.of() method
// Printing alongside by using scope resolution
// operator
Stream.of(map.entrySet().toArray())
.forEach(System.out::println);
}
} |
1=Geeks 2=For 3=Geeks 1=Geeks 2=For 3=Geeks 1=Geeks 2=For 3=Geeks
Now let’s see the differences between values() Method and entrySet() Method
values() Method | entrySet() Method |
---|---|
This method returns the collection view of all the values contained in the map. | This method returns the Set view of all the mappings present in the map, ie it returns a set of key, value pairs. |
If any changes happen to the map, then they can be observed in the collection also, as the method collection is backed up by the map. | If any changes happen to the map, then they can be observed in the set also, as the set is backed up by the map. |
This method is used when we only need to deal with values present in the map. | This method is used when we need to deal with keys as well as values present in the map. |