import java.util.*;
public class HashMap_random_Test
{
    int number=1;
    public String toString()
    {
        return Integer.toString(number);
    }
    public static void main(String[] args)
    {
        HashMap map=new HashMap();
        for(int i=0;i<5;i++)
        {
            Integer integer=new Integer((int)(Math.random()*20));
            if(map.containsKey(integer))
            {
                ((HashMap_random_Test)(map.get(integer))).number++;
            }
            else
            {
                map.put(integer,new HashMap_random_Test());
               //把这句中的new HashMap_random_Tes()怎么写就能改成number
               //如果改写成number,就不用再重写toString()方法了.
            }
        }
        System.out.println(map);
    }
}我想把HashMap容器中的value用类属性number代替.那要怎么将 new HashMap_random_Test()) 改写成类属性number呢????new HashMap_random_Test());的意思是初始化number.在容器中存在已有的Key时,就让number++,如果不存在时,就把这对Key-Value存入容器中.new HashMap_random_Test());就是初始化了number的值,让它回到初始化状态,变成1.

解决方案 »

  1.   

    思路:用另一个映射表对象来计数import java.util.*; 
    public class HashMap_random_Test 
    {     
        public String toString() 
        { 
            return Integer.toString(number); 
        } 
        public static void main(String[] args) 
        { 
            HashMap<Integer,HashMap_random_Test> map = new HashMap<Integer,HashMap_random_Test>(); 
            HashMap<Integer,Integer> count = new HashMap<Integer,Integer>(); //增加的
            for(int i=0;i <10;i++) 
            { 
                Integer integer = new Integer((int)(Math.random()*20)); 
                if(map.containsKey(integer)) 
                { 
                    count.put(integer, ++counter);
                } 
                else 
                { 
                    map.put(integer,new HashMap_random_Test());              
                }            
            } 
            System.out.println(map); 
            System.out.println(count);        
        }
        private int number = 1;
        private static int counter = 1;  //增加的,用来给键计数

      

  2.   

    放入<Integer,Integer>也可以啊。