首页 > 刚学Map容器,联系键与值的联系,但程序中关于freq++ 产生了疑问

刚学Map容器,联系键与值的联系,但程序中关于freq++ 产生了疑问

程序是 由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
【热门文章】
【热门文章】