java中编译没有错误但是不执行 不知道问题出在什么地方
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;//随机生成50个【10,50】之间的整数
Integer in = new Integer(number);
if(map.get(in) == null)
{
map.put(in, new Integer[1]);
}
else
{
/*将在map中出现过的key值映射的value值取出拆箱为整数 (编译后报错就是这一行)*/
int value = ((Integer)(map.get(in))).intValue();
map.put(in, new Integer(value + 1)); /*将value值加1封装后放入map中*/
}
}
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);
}
}
}
报错:
Exception in thread "main"
java.lang.ClassCastException : [Ljava.lang.Integer; cannot be cast to java.lang.Integer
at hubeiershi3.RandomSortTest.main(RandomSortTest.java:29)
另外想问一句 让eclipse显示行号的快捷键是什么?谢谢大神了,祝你身体健康!工作顺利!
------解决方案-------------------- 帮你顶哈,我也没看懂,反正就是不能转换为Integer
------解决方案-------------------- if(map.get(in) == null)
{
map.put(in, new Integer[1]);
}
这里中括号是什么意思。。。。
------解决方案-------------------- 类型转换错误
右击Eclipse-》show line num可以打一行号
------解决方案-------------------- 探讨 这句话的意思是说判断map中in所映射的value存不存在,如果不存在就将in作为键名,1的封装类作为键值放入到map中
------解决方案-------------------- 你要new对象也是小括号啊,把小括号去掉应该就可以了
------解决方案-------------------- ctrl + f10
ClassCastException 是JVM在检测到两个范例间转换不兼容时激发的运行时非常。intValue是输出int数据。
------解决方案-------------------- new Integer[1]创建了长度为1的数组,内容是[null]
------解决方案-------------------- 呵呵,果然有些粗心。
------解决方案-------------------- 探讨 new Integer[1]创建了长度为1的数组,内容是[null]