Hi,
This should work :-
====================================
public class WFreqRecord
{
private
String word;
private int freq;
public WFreqRecord(String str, int frequency)
{
word = str;
freq = frequency;
}
public String getWord()
{
return word;
}
public void setWord(String str)
{
word = str;
}
public int getFrequency()
{
return freq;
}
public void setFrequency(int frequency)
{
freq = frequency;
}
public String toString()
{
return getWord() + " " + getFrequency();
}
}
=======================================
public class Test
{
public static void main(String[] args)
{
WFreqRecord[] data = getData();
// sorting by words
Arrays.sort(data, new Comparator()
{
public int compare(Object o1, Object o2)
{
WFreqRecord temp1 = (WFreqRecord)o1;
WFreqRecord temp2 = (WFreqRecord)o2;
return temp1.getWord().compareTo(temp2.getWord());
}
});
System.out.println("Sorting by Words :-");
printArray(data);
data = getData();
// sorting by freq
Arrays.sort(data, new Comparator()
{
public int compare(Object o1, Object o2)
{
WFreqRecord temp1 = (WFreqRecord)o1;
WFreqRecord temp2 = (WFreqRecord)o2;
return temp1.getFrequency() - temp2.getFrequency();
}
});
System.out.println("Sorting by Freq :-");
printArray(data);
}
private static void printArray(Object[] arr)
{
for(int i = 0; i < arr.length; i++){
System.out.println(arr[i]);
}
System.out.println("------------------------");
}
protected static WFreqRecord[] getData()
{
return new WFreqRecord[]{
new WFreqRecord("this", 2),
new WFreqRecord("is", 3),
new WFreqRecord("a", 3),
new WFreqRecord("test", 2),
new WFreqRecord("and", 1),
new WFreqRecord("sentence", 2),
new WFreqRecord("to", 2),
new WFreqRecord("see", 1),
new WFreqRecord("if", 1),
new WFreqRecord("the", 1),
new WFreqRecord("code", 1),
new WFreqRecord("works", 1),
new WFreqRecord("properly", 1),
new WFreqRecord("line", 1),
new WFreqRecord("three", 1),
new WFreqRecord("which", 1),
new WFreqRecord("also", 1),
new WFreqRecord("happens", 1),
new WFreqRecord("be", 1)
};
}
}