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());
}
}
System.out.println(map);
}
}
第二种写法:import java.util.*;
public class HashMap_random_Test
{
public static void main(String[] args)
{
HashMap map=new HashMap();
                  int number=1;
for(int i=0;i<5;i++)
{
Integer integer=new Integer((int)(Math.random()*20));
if(map.containsKey(integer))
{
Object object=map.get(integer);
                                     object=number++;
}
else
{
map.put(integer,number);
}
}
System.out.println(map);
}
}第一种写法是对的,就是太麻烦了.
第二种写法不知道对不对.
怎么写就能把map.put(integer,new HashMap_random_Test());改成map.put(integer,number);呢?这样的话,就不用重写toString()方法了.

解决方案 »

  1.   

    jdk5.0以后,是支持自动转型的,5.0以上的版本应该没问题
      

  2.   

    map.put(integer,new HashMap_random_Test());中的new HashMap_random_Test()能不能改成number
      

  3.   

    楼主new 出来一个HashMap_random_Test()啥意思?没看懂
      

  4.   


    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
                }
            }
            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.
      

  5.   

    object=number++;
    不会报错吗?
      

  6.   

    JDK1.5以上有自动装箱拆箱,好好学点
      

  7.   

    你定义HashMap<Integer, Integer>自然就可以用number了