<pre name="code" class="java">Collections类不熟悉,有待练习。
package CollectionTest;
import java.util.TreeMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* @author zeng
* 随机生成 50 个数字(整),每的范围是 [10, 50]。
* 统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来
* 如果某个数字出现次数为0.则不要打印它。打印时按照数字的升序排列。
*/
public class TreeMapTest
{
private static int value;
public static void main(String[] args)
{
Map<Integer,Integer> map = new TreeMap<Integer,Integer>();//存储50个随机整数放入"键"中。使用value统计键出现的次数。
for(int i = 0; i < 50 ; i++)
{
int key = (int)(Math.random()*41+10);
//map.get() 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null,反之亦然。
if(map.get(key) == null)
{
//key的值没有存在TreeMap的"键"中,那么将Key赋给 "键",给对应vulue赋值 1;
map.put(key, new Integer(1));
}
else
{
//如果key的值已经存在TreeMap的键中,则将value自增1。
value = map.get(key);
map.put(key, value+1);
}
}
Collection<Integer> cols = map.values();
Integer maxOccurs = (Integer)Collections.max(cols);
List<Integer> list = new ArrayList<Integer>();//使用ArrayList存储最大value值
Set<Integer> set = map.keySet();
Iterator<Integer> s = set.iterator();
while(s.hasNext())
{
Integer k = (Integer) s.next();
Integer v = (Integer) map.get(k);
//将最大的key存入ArrayList中。
if(v.intValue() == maxOccurs.intValue())
{
list.add(k);
}
System.out.println(" "+ k + " = " + v);
}
System.out.println("出现最多次数"+maxOccurs);
System.out.println("这些数字分别是:");
for(Iterator<Integer> iter = list.iterator() ; iter.hasNext();)
{
System.out.println(iter.next());
}
}
}