Write a program that takes an array of words and does the following:
Eg: if the input array = i came i saw i conquered then outputs are
- Prints out any duplicate words
- Prints the number of distinct words
- Prints the list of the words with duplicates eliminated.
Eg: if the input array = i came i saw i conquered then outputs are
- Duplicate present: i
- Number of distinct elements: 4
- Distinct elements: [saw, came, conquered, i]
SOLUTION:
import java.util.Scanner; import java.util.StringTokenizer; import java.util.Map; import java.util.HashMap; import java.util.Set; public class HashMapExample { public static void main(String[] args){ //Scanner object Scanner input = new Scanner(System.in); //Reading the line System.out.print("Enter the line of words: "); String line = input.nextLine(); //Creating String tokenizer for line StringTokenizer tokenizer = new StringTokenizer(line); //Creating and Adding words to the map int count=0; String word; Map< String,Integer > map = new HashMap< String,Integer >(); while ( tokenizer.hasMoreTokens() ) { word = tokenizer.nextToken(); if( map.containsKey(word) ) { count = map.get(word); map.put(word, count+1); } else { map.put(word, 1); } }//End map creator //Creating set for the map Set< String > list = map.keySet(); //Printing duplicate words System.out.print("Duplicate words: "); for ( String word2 : list ) { if(map.get(word2)>1) System.out.print(word2+ " "); } //Printing the distinct elements System.out.println("\nNumber of Distinct elements: "+map.size()); //Printing Distinct elements System.out.print("Distinct elements: "); System.out.println(list); }//End main method }//End class
No comments:
Post a Comment