日期:2014-05-20  浏览次数:20756 次

求大神帮忙解决一下 一个纠结了我一天的一个问题 我很菜 不要喷我
package hubeiershi3;

import java.util.Iterator;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import java.util.TreeMap;

public class RandomSortTest
{
  public static void main(String[] args)
{
  Map map = new TreeMap();
  Random random = new Random();
   
   
  for(int i = 0; i < 50; i++)
  {
  int number = random.nextInt(41) + 10;
   
  Integer in = new Integer(number);
   
  if(map.get(in) == null)
  {
  map.put(in, new Integer[1]); 
  }
  else
  {
  int value = ((Integer)(map.get(args[i]))).intValue();
  map.put(in, new Integer(value + 1)); 
  }
  }
  Set set = map.entrySet();
  for(Iterator iter = set.iterator(); iter.hasNext();)
  {
  Map.Entry entry = (Map.Entry)iter.next();
   
  Integer key = (Integer)entry.getKey();
  Integer valu = (Integer)entry.getValue();
   
  System.out.println(key + ":" +valu);
  }
}
}


------解决方案--------------------
数组越界了,检查了数组下标。
------解决方案--------------------
返回的是数组越界异常,好好的看看你的数组,是不是数组的下标超过了数组的最大长度。。。
------解决方案--------------------
把你这段代码for(int i = 0; i < 50; i++)
改为
for(int i = 0; i < args.length; i++)
------解决方案--------------------
数组越界异常!
------解决方案--------------------
int value = ((Integer)(map.get(args[i]))).intValue();

看一下这句,可能是这的问题。
可以在这句打个断点,看args[i]能不能取到值。

不知道你的args数组有没有赋值。
------解决方案--------------------
重复问题,呵呵。
------解决方案--------------------
正解
探讨

把你这段代码for(int i = 0; i < 50; i++)
改为
for(int i = 0; i < args.length; i++)