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()方法了.
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.
不会报错吗?