神奇的数组越界 求指教···在线等··· 本帖最后由 cool1700 于 2011-08-09 11:30:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.out.println(arrayList2.get(1).getTypeName()); <----- 错误在这里一共只有1个,下标=0 你在for循环里面打印一下就知道了 arrayList2 的下标是从0开始的 所以 你 应该是 System.out.println(arrayList2.get(0).getTypeName()); 先打印一下它System.out.println(arrayList2.get(1));System.out.println(arrayList2.get(1).getTypeName()); 从你的打印结果和错误提示来看,貌似没有问题,不过因为输出流和错误流不同步,所以也有可能是你贴出的信息不一定是按顺序打印的,初步判定System.out.println(arrayList2.get(1).getTypeName()); //这里可能出错了,最好先判断sizeSystem.out.println(arrayList2.size());其次,可能别的地方修改了arrayList2,所以导致循环里出错 这句应该没错吧 床头柜是这句输出的 既然输出了 就木有问题啊arraylist2的大小是2 这个也输出出来了 里面两个元素 我用get(1)取第二个元素 貌似没问题吧? for(int j=0;j<arrayList2.size();j++){arrayList2.get(j).getTypeName();}改成for(int j=1;j<=arrayList2.size();j++){arrayList2.get(j).getTypeName();} List<String> arrayList2 = new ArrayList<String>(); arrayList2.add("cc"); arrayList2.add("dd"); System.out.println(arrayList2.get(1)); System.out.println(arrayList2.size()); for(int j=0;j<arrayList2.size();j++) { System.out.println(arrayList2.get(j)); }}没有问题啊?是不你的list里有东西错了? 楼主,很认真的告诉你,你这段代码没错误.根据你的代码片段模拟了一下,不知道是否有出入.import java.util.ArrayList;import java.util.List;public class ArrayL { private String typeName; public ArrayL() { } public ArrayL(String typeName) { this.typeName = typeName; } public String getTypeName() { return typeName; } public void setTypeName(String typeName) { this.typeName = typeName; } public static void main(String[] args) { List<ArrayL> arrayList2 = new ArrayList<ArrayL>(); arrayList2.add(new ArrayL("沙发")); arrayList2.add(new ArrayL("床头柜")); System.out.println(arrayList2.get(1).getTypeName()); System.out.println(arrayList2.size()); for (int j = 0; j < arrayList2.size(); j++) { arrayList2.get(j).getTypeName(); } }} 是不是有别的线程修改了list, 如果是单线程执行的,应该不会报错的吧 存省份 和 市 这样字典表 这些字段用什么类型比较好呢? 如何设计与实现应用系统日志 哪位好心人有马士兵servlet源代码 为什么要这么转?关于文件下载的文件名的(utf8、gbk、8859-1)。 急问:Request.getRemoteUser为什么取得的值是null?在线等 又是中文问题~! 求一SpringMVC 和 DWR 整合的例子 运行项目是报错: 我是成电的,希望通过这个版多认识一些JSP同志!!! 索引用法遇到问题, 求大家帮忙解决一下! JSPGenCMS3.0部分截图 JAVA如何实现下载WORD文档
一共只有1个,下标=0
所以 你 应该是 System.out.println(arrayList2.get(0).getTypeName());
先打印一下它System.out.println(arrayList2.get(1));
System.out.println(arrayList2.get(1).getTypeName());
System.out.println(arrayList2.get(1).getTypeName()); //这里可能出错了,最好先判断size
System.out.println(arrayList2.size());
其次,可能别的地方修改了arrayList2,所以导致循环里出错
这句应该没错吧 床头柜是这句输出的 既然输出了 就木有问题啊
arraylist2的大小是2 这个也输出出来了 里面两个元素 我用get(1)取第二个元素 貌似没问题吧?
{
arrayList2.get(j).getTypeName();
}
改成
for(int j=1;j<=arrayList2.size();j++)
{
arrayList2.get(j).getTypeName();
}
arrayList2.add("cc");
arrayList2.add("dd");
System.out.println(arrayList2.get(1));
System.out.println(arrayList2.size());
for(int j=0;j<arrayList2.size();j++)
{
System.out.println(arrayList2.get(j));
}
}
没有问题啊?是不你的list里有东西错了?
import java.util.ArrayList;
import java.util.List;public class ArrayL { private String typeName; public ArrayL() {
} public ArrayL(String typeName) {
this.typeName = typeName;
} public String getTypeName() {
return typeName;
} public void setTypeName(String typeName) {
this.typeName = typeName;
} public static void main(String[] args) {
List<ArrayL> arrayList2 = new ArrayList<ArrayL>();
arrayList2.add(new ArrayL("沙发"));
arrayList2.add(new ArrayL("床头柜"));
System.out.println(arrayList2.get(1).getTypeName());
System.out.println(arrayList2.size());
for (int j = 0; j < arrayList2.size(); j++) {
arrayList2.get(j).getTypeName();
} }
}