自己写的一个随机数的例子,采用hashmap排序

题目: 随机生成 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);
// }
//}

猜你喜欢

转载自shunchangluo.iteye.com/blog/1019312