求大神帮忙解决一上 一个纠结了小弟我一天的一个有关问题 小弟我很菜 不要喷小弟我
求大神帮忙解决一下 一个纠结了我一天的一个问题 我很菜 不要喷我
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数组有没有赋值。
------解决方案--------------------
重复问题,呵呵。
------解决方案--------------------
正解
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数组有没有赋值。
------解决方案--------------------
重复问题,呵呵。
------解决方案--------------------
正解