/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package OtherTests;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author shayzukerman
*/
public class MaxDuplicateWordCount
{
public MaxDuplicateWordCount
(String fileName
)
{
this.fileName = fileName;
}
public void readFile()
{
HashMap
<String, Integer
> wordsMap
= new HashMap
<>();
{
while ((str = reader.readLine()) != null)
{
String[] wordsInLine
= str.
split("[ \t,.]+");
for (String word
: wordsInLine
)
{
Integer currCnt
= wordsMap.
get(word
);
currCnt = (currCnt != null) ? currCnt + 1 : 1;
wordsMap.put(word, currCnt);
}
}
}
{
Logger.getLogger(MaxDuplicateWordCount.class.getName()).log(Level.SEVERE, null, ex);
}
{
Logger.getLogger(MaxDuplicateWordCount.class.getName()).log(Level.SEVERE, null, ex);
}
Set
<Entry
<String, Integer
>> nameCnt
= wordsMap.
entrySet();
ArrayList
<Entry
<String, Integer
>> arrList
= new ArrayList
<>(nameCnt
);
System.
out.
println("Before Sort:\n");
for (Entry
<String, Integer
> ent
: arrList
)
System.
out.
format("%s -> %d\n", ent.
getKey(), ent.
getValue());
@Override
public int compare
(Entry
<String, Integer
> o1, Entry
<String, Integer
> o2
)
{
return(o2.getValue().compareTo(o1.getValue()));
}
});
System.
out.
println("\n\nAfter Sort:\n");
for (Entry
<String, Integer
> ent
: arrList
)
System.
out.
format("%s -> %d\n", ent.
getKey(), ent.
getValue());
// Object[] arr = (Object[]) nameCnt.toArray();
// System.out.println("Before Sort:\n");
// for (int i = 0; i < arr.length; i++)
// {
// Entry<String, Integer> ent = (Entry<String, Integer>) arr[i];
// System.out.format("%s -> %d\n", ent.getKey(), ent.getValue());
// }
//
// Arrays.sort(arr, new Comparator<Object>() {
//
// @Override
// public int compare(Object o1, Object o2)
// {
// Entry<String, Integer> ent1 = (Entry<String, Integer>) o1;
// Entry<String, Integer> ent2 = (Entry<String, Integer>) o2;
// return(ent2.getValue().compareTo(ent1.getValue()));
// }
// });
// System.out.println("After Sort:\n");
// for (int i = 0; i < arr.length; i++)
// {
// Entry<String, Integer> ent = (Entry<String, Integer>) arr[i];
// System.out.format("%s -> %d\n", ent.getKey(), ent.getValue());
// }
}
public static void main
(String[] args
)
{
if (args.length == 0)
{
System.
err.
format("Usage:\n%s <textFileName>", MaxDuplicateWordCount.
class.
getName());
}
MaxDuplicateWordCount maxDup = new MaxDuplicateWordCount(args[0]);
maxDup.readFile();
}
}