题目: 随机生成 50 个数字(整数),每个数字的范围是[10, 50],统计每个数字出现的次数以及 出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来,如果某个数 字出现次数为 0,则不要打印它。打印时按照数字的升序排列。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
public class RandomTest
{
public static void main(String[] args)
{
Random random = new Random();
HashMap map = new HashMap();
int a;
for(int i= 0 ; i<50 ; i++)
{
a =(int) random.nextInt(41)+10;
System.out.print(a + " " );
Integer in =new Integer(a);
if(map.get(in)== null)
{
map.put(in,new Integer(1));
}
else
{
Integer ins = (Integer) map.get(in);
ins = new Integer (ins.intValue()+1);
map.put(in ,ins);
}
}
// int [] array = new int [50];
//
// for(int i= 0 ; i<array.length ; i++)
// {
// array[i] = (int) (random.nextInt(41)+10);
// }
//
// for(int k=0 ; k<array.length; k++)
// {
// if(map.get(args[k])== null)
// {
// map.put(args[k], new Integer(1));
// }
// else
// {
// Integer in = (Integer) map.get(args[k]);
// in = new Integer(in.intValue()+1);
// map.put(args[k], in);
// }
// }
System.out.println();
// Set set = map.keySet();
// for(Iterator iter = set.iterator(); iter.hasNext();)
// {
// Integer key = (Integer) iter.next();
//
// Integer value = (Integer) map.get(key);
//
// System.out.println(key+" 出现了 " + value+"次");
//
// }
//Set set = map.entrySet();
List set = new ArrayList(map.entrySet());
for(Iterator iter = set.iterator(); iter.hasNext();)
{
Map.Entry entry = (Map.Entry) iter.next();
Integer key = (Integer) entry.getKey();
Integer value = (Integer) entry.getValue();
Collections.sort(set,new Comparator()
{
public int compare(Object arg0 ,Object arg1)
{
Map.Entry a =(Map.Entry)arg0;
Map.Entry b =(Map.Entry)arg1;
//return (a.getKey().toString().compareTo(b.getKey()));
//return ((String) a.getKey()).compareTo(b.getKey());
return Integer.parseInt(a.getKey().toString())-Integer.parseInt(b.getKey().toString());
}
});
System.out.println(key +"出现了"+value+"次");
}
Integer valuemax = new Integer(0);
Integer keym = new Integer(0);
for(Iterator iter = set.iterator(); iter.hasNext();)
{
Map.Entry entry2 = (Map.Entry) iter.next();
Integer key2 = (Integer) entry2.getKey();
Integer value2 = (Integer) entry2.getValue();
if( Integer.parseInt(valuemax.toString()) < Integer.parseInt(value2.toString()))
{
valuemax = value2;
keym = key2;
}
}
System.out.println(Integer.parseInt(keym.toString())+" 出现了最多次,次数为 "+ Integer.parseInt(valuemax.toString())+"次");
}
}
//class MyComparator implements Comparator
//{
// public int compare(Object arg0, Object arg1)
// {
// Map.Entry a = (Map.Entry) arg0;
// Map.Entry b = (Map.Entry) arg1;
//
// return (a.g);
// }
//}