请问;
class a
{
  public static void main(String[]args)
  {
    Random rand = new Random(47);
    Map<Integer,Integer> m = new Map<Integer,Integer>;
    for(int i = 0;i<10000;i++)
    {
      int r = rand.nextInt(20);
      Integer f = m.get(r);
      m.put(r,f==null?1:f+1);
    }
    System.out.println(m);
  }
}
其中:
Integer f = m.get(r);
还没有调用m.put(r,f==null?1:f+1)放入元素 怎么就用get方法来取值呢 那不是每次都取出null吗

解决方案 »

  1.   

    ...............
    ...............
    无语
    Map 不是接口吗?
    您能直接用了?反正我不好用
      

  2.   

    没放值,get的时候,得到的是null啊。
    m.put(r,f==null?1:f+1);   "f==null?1:f+1"这个语句不是很清楚吗?
    另外你的程序有问题。下边是测试代码:
              { 
                Random rand = new Random(47); 
                Map <Integer,Integer>  m = new HashMap<Integer,Integer>() ; 
                for(int i = 0;i <10000;i++) 
                { 
                  int r = rand.nextInt(20); 
                  Integer f = m.get(r); 
                  m.put(r,f==null?1:f+1); 
                } 
                System.out.println(m); 
              }        
      

  3.   

    请问; 
    class a 

      public static void main(String[]args) 
      { 
        Random rand = new Random(47); 
        Map <Integer,Integer>  m = new Map <Integer,Integer> ; 
        for(int i = 0;i <10000;i++) 
        { 
          int r = rand.nextInt(20); 
          Integer f = m.get(r); 
          m.put(r,f==null?1:f+1); 
        } 
        System.out.println(m); 
      } 

    其中: 
    Integer f = m.get(r); 
    还没有调用m.put(r,f==null?1:f+1)放入元素 怎么就用get方法来取值呢 那不是每次都取出null吗 
    ------------------------------------------------------------------------------------
    只有第一次m.get(r)可以肯定是NULL,其他时候都是随机的因为你不是m.put(r,f==null?1:f+1);了吗?
    另外m.put(r,f==null?1:f+1); //这里会抛异常,应为m.put(new Integer(r),new Integer(f==null?1:f+1)); 
    Map里只能放对象。