In this tutorial, I am going to show you the most important question in Java Interview. How to find duplicate words count in a file.
Input : Give a Text file with duplicate words like below :
Java 8 Tutorials Java 8 Examples Online Tutorials Point Java 7 Examples Java 7 try with resources example
Output :
examples -> 2 java8 -> 2 tutorials -> 2 java7 -> 2 with -> 1 online -> 1 resources -> 1 try -> 1 point -> 1 example -> 1
Find Duplicate Words Count in a File :
package com.onlinetutorialspoint.javaprograms; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.StringTokenizer; public class DuplicateWordsCount { public Map<String, Integer> getMapWithCount(String fileName) { Map<String, Integer> map = new HashMap<String, Integer>(); try (FileInputStream fis = new FileInputStream(fileName); DataInputStream dis = new DataInputStream(fis); BufferedReader br = new BufferedReader(new InputStreamReader( dis))) { String line = null; while ((line = br.readLine()) != null) { StringTokenizer st = new StringTokenizer(line, " "); while (st.hasMoreTokens()) { String tmp = st.nextToken().toLowerCase(); if (map.containsKey(tmp)) { map.put(tmp, map.get(tmp) + 1); } else { map.put(tmp, 1); } } } } catch (IOException e) { e.printStackTrace(); } return map; } public static void main(String a[]) { DuplicateWordsCount mdc = new DuplicateWordsCount(); Map<String, Integer> wordMap = mdc .getMapWithCount("/home/chandrashekhar/Desktop/sample.txt"); wordMap.entrySet().stream().sorted(Map.Entry.<String, Integer>comparingByValue().reversed() ).forEachOrdered((entry)->System.out.println(entry.getKey() +" -> "+entry.getValue())); } }
Recommended : try with resources in Java 7
Recommended : How to sort a map in Java 8
examples -> 2 java8 -> 2 tutorials -> 2 java7 -> 2 with -> 1 online -> 1 resources -> 1 try -> 1 point -> 1 example -> 1
Happy Learning 🙂
Leave A Comment