Open In App

Java Program to Find the Occurrence of Words in a String using HashMap

Last Updated : 19 Dec, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

HashMap<Key, Value> provides the basic implementation of the Map interface of Java and import java.util.HashMap package or its superclass. HashMap stores the data in (Key, Value) pairs, and accessed by an index of another type (e.g. an Integer). One object is used as a key to another object. If the duplicate key is inserted, it will replace the element of the corresponding key.

Approach :

  • Declare a HashMap in Java of <String, Integer>
  • Split the given string and store the words into a String array.
  • Traversing the array, check if the word is in the HashMap or not.
  • If it is not in the HashMap, then store the word as key and 1 as the initial value; if the word is present in the HashMap then increase the value against the word.
  • Once the traversal is complete, print the HashMap.

Example:

Java




// Java Program to find the occurrence
// of words in a String using HashMap.
import java.io.*;
import java.util.HashMap;
import java.util.Map;
 
class GFG {
    public static void main(String[] args)
    {
 
        // Declaring the String
        String str = "Alice is girl and Bob is boy";
        // Declaring a HashMap of <String, Integer>
        Map<String, Integer> hashMap = new HashMap<>();
 
        // Splitting the words of string
        // and storing them in the array.
        String[] words = str.split(" ");
 
        for (String word : words) {
 
            // Asking whether the HashMap contains the
            // key or not. Will return null if not.
            Integer integer = hashMap.get(word);
 
            if (integer == null)
                // Storing the word as key and its
                // occurrence as value in the HashMap.
                hashMap.put(word, 1);
 
            else {
                // Incrementing the value if the word
                // is already present in the HashMap.
                hashMap.put(word, integer + 1);
            }
        }
        System.out.println(hashMap);
    }
}


Output

{Bob=1, Alice=1, and=1, is=2, girl=1, boy=1}

Note that in the above code, we have used Wrapper class i.e. Integer, since the get(key) method returns null.

You can also eliminate the use of integer variable from the above program.

Let us see the code below :

Java




// Java Program to find the occurrence
// of words in a String using HashMap.
import java.io.*;
import java.util.HashMap;
import java.util.Map;
 
class GFG {
    public static void main(String[] args)
    {
 
        String str = "Alice is girl and Bob is boy";
 
        Map<String, Integer> hashMap = new HashMap<>();
 
        String[] words = str.split(" ");
 
        for (String word : words) {
            // containsKey(key) will return a boolean value
            // i.e. true if it contains the key and false if
            // it doesn't.
            if (hashMap.containsKey(word))
                hashMap.put(word, hashMap.get(word) + 1);
 
            else
                hashMap.put(word, 1);
        }
 
        System.out.println(hashMap);
    }
}


Output

{Bob=1, Alice=1, and=1, is=2, girl=1, boy=1}


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads