程序是 由Random 产生的数字,而值是该数字出现的次数
语句为 map . put (key , freq == null ? 1 : freq +1) ;
/*{0=496, 1=514, 2=482, 3=480, 4=477, 5=508, 6=469, 7=482, 8=526, 9=511, 10=504, 11=518, 12=496, 13=516, 14=525, 15=508, 16=514, 17=506, 18=490, 19=478}*/
而语句为map . put (key , freq == null ? 1 : freq ++) ; 则错误
/*{0=1, 1=1, 2=1, 3=1, 4=1, 5=1, 6=1, 7=1, 8=1, 9=1, 10=1, 11=1, 12=1, 13=1, 14=1, 15=1, 16=1, 17=1, 18=1, 19=1}*/
代码如下:
import java . util . * ;
public class MapTest
{
public static void main (String [ ] args )
{
Map <Integer , Integer > map = new HashMap <Integer , Integer >( ) ;
Random rand = new Random ( ) ;
for (int i = 0; i < 10000 ; i++)
{
int key = rand . nextInt ( 20) ;
Integer freq = map . get (key) ;
map . put (key , freq == null ? 1 : freq ++) ;
}
System . out . print ( map) ;
}
}
++freq