BTEC Education Learning

Java Program To Get Frequency Of Words With Lambda Expression


Java Program To Get Frequency Of Words With Lambda Expression

Java, a versatile and widely-used programming , has evolved over the years, introducing new features and functionalities to make developers' lives easier. One such feature that significantly enhances Java's capabilities is . In this comprehensive guide, we will delve deep into the world of Java and build a Java program from scratch to calculate the frequency of words in a given text. By the end of this article, you'll not only understand Lambda Expressions but also have a practical implementation of their power.

Introduction to Lambda Expressions in Java

Lambda expressions, introduced in , have revolutionized the way we write code in Java. They provide a concise and expressive way to implement instances of single-method interfaces, also known as . This feature was introduced to make Java more expressive and adaptable to modern programming paradigms, such as .

Understanding the Problem

Before diving into the code, let's establish a clear understanding of the problem statement. Our goal is to create a Java program that takes a text as input and calculates the frequency of each word in that text. In simpler terms, given an input text like “Java is a versatile programming , and Java is widely used,” the program should output:

Java: 2
is: 2
a: 1
versatile: 1
programming: 1
language: 1
and: 1
widely: 1
used: 1

Now, let's break down the process step by step.

Building the Java Program

Step 1: Input the Text

Our journey begins with obtaining the input text. This text can be provided by the user or read from a file. For user input, we can employ the Scanner class, which allows us to gather input from the keyboard. If you're dealing with a text file, Java provides various classes for file handling, such as FileInputStream or BufferedReader, to read the content of the file.

Here's how you can prompt the user for input:

Scanner scanner = new Scanner(;
System.out.println("Enter the text for word frequency analysis:");
String inputText = scanner.nextLine();

Alternatively, if you want to read from a file:

try (BufferedReader reader = new BufferedReader(new FileReader("input.txt"))) {
StringBuilder text = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
text.append(line).append(" ");
inputText = text.toString();
} catch (IOException e) {

Step 2: Tokenization

With the input text in hand, the next task is to break it down into individual words. To achieve this, regular expressions come to our aid. We can use regex patterns to split the text into words, considering spaces and punctuation marks as delimiters.

Here's an example of how to tokenize the input text:

String[] words = inputText.split("\\s+|\\p{Punct}");

This line of code uses the split method with a regular expression to split the input text into an array of words, eliminating spaces and punctuation marks.

Step 3: Calculate Word Frequency with Lambda Expression

Now, let's explore the core of our program, where Lambda Expressions shine. To calculate the frequency of words, we'll utilize a Map data structure, specifically a HashMap, to store word-frequency pairs. The Lambda Expression will be used to simplify the process of word counting.

Here's how it's done:

new HashMap
for (String word : words) {
wordFrequency.put(word, wordFrequency.getOrDefault(word, 0) + 1);

In this snippet, we iterate through each word in the list of words. The Lambda Expression comes into play when we use the getOrDefault method to update the count in the map. This concise approach simplifies word counting while making the code more readable and elegant.

Step 4: Display the Results

The final step involves presenting the word frequencies to the user. We can use a for-each loop to iterate through the Map and print each word along with its frequency.

System.out.println(entry.getKey() + ": " + entry.getValue());

This loop iterates through the entries in the wordFrequency map and prints each word followed by its frequency.


In this article, we've embarked on a journey through the world of Java Lambda Expressions and leveraged their power to create a practical word frequency calculator. We started by understanding the problem, then proceeded to build a Java program step by step, breaking down each component for clarity.

By the end, you've not only gained knowledge about Lambda Expressions in Java but also acquired a valuable tool for text analysis. The program we've developed efficiently handles the task of counting word frequencies in any given text, making it a versatile addition to your Java programming toolkit.

Now, you're well-equipped to harness the power of Lambda Expressions in Java for a wide range of applications, from data analysis to streamlining your code.


  1. What exactly are Lambda Expressions in Java? Lambda Expressions in Java are a way to express instances of single-method interfaces () using a shorter . They facilitate the use of functions as arguments or return values, enhancing code readability and maintainability.

  2. Why should I use Lambda Expressions for word frequency calculation? Lambda Expressions simplify the process of iterating through words and updating their frequencies, resulting in more elegant and readable code. They are particularly useful for functional-style programming tasks.

  3. Can this program efficiently handle large texts? Yes, this program is designed to efficiently process large texts. It reads and processes words one by one as they are encountered, without storing the entire text in memory.

  4. How can I modify the program to analyze text from a file? To analyze text from a file, you can use Java's file handling capabilities to read the content of the file into a string variable, and then proceed with tokenization and frequency calculation as shown in the article.

  5. Are Lambda Expressions the only way to calculate word frequency in Java? No, there are other approaches to calculate word frequency in Java, but Lambda Expressions offer a concise and elegant solution that aligns with modern programming practices and concepts.

Leave your thought here

Your email address will not be published. Required fields are marked *

Alert: You are not allowed to copy content or view source !!