package com.zao;import java.util.ArrayList;public class Core1 {
private String xingming;
private String lll;
private String mmm; public Core1(String a, String b, String c) {
xingming = a;
lll = b;
mmm = c;
}
public String getXingming(){
return xingming;
}public String getLLL(){
return lll;
}public String getmmm(){
return mmm;
}public Core1(){}
public static void main(String[] args) {
ArrayList c = new ArrayList();
System.out.println("" + c.size());
Core1 b = new Core1("孙悟空", "2", "4");
Core1 b2 = new Core1("沙僧","2","sd");
Core1 b3 = new Core1("八戒","2s","360");
c.add(b);
c.add(b2);
c.add(b3);
System.out.println("大小为:" + c.size());
for (int i = 0; i <= c.size(); i++) {
Core1 f = (Core1) c.get(i);
System.out.println("第" + (i + 1) + "个学生的姓名字是" + f.getXingming());
} }}
结果显示:0
大小为:2
第1个学生的姓名字是孙悟空
第2个学生的姓名字是沙僧
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at com.zao.Core1.main(Core1.java:33)
可以从运行结果看出,输出了2个人的信息,可是那个“0”是怎么来的??后面的异常又出现在哪里??是越界吗?没有啊   。

解决方案 »

  1.   

    我给你解释的够清楚了吧,i <= c.size()等号去掉就OK,给分吧嘎嘎、
      

  2.   

    System.out.println("" + c.size()); 你还没有想容器里面存放数据,打印出来肯定是0。
    for (int i = 0; i <= c.size(); i++) ,越界了,改成i<c.size()。另外你这个输出应该是三行。
      

  3.   


    import java.util.ArrayList;public class Core1 {
    private String xingming;
    private String lll;
    private String mmm; public Core1(String a, String b, String c) {
    xingming = a;
    lll = b;
    mmm = c;
    } public String getXingming() {
    return xingming;
    } public String getLLL() {
    return lll;
    } public String getmmm() {
    return mmm;
    } public Core1() {
    } public static void main(String[] args) {
    ArrayList c = new ArrayList();
    System.out.println("" + c.size());
    Core1 b = new Core1("孙悟空", "2", "4");
    Core1 b2 = new Core1("沙僧", "2", "sd");
    Core1 b3 = new Core1("八戒", "2s", "360");
    c.add(b);
    c.add(b2);
    c.add(b3);
    System.out.println("大小为:" + c.size());
    for (int i = 0; i < c.size(); i++) {
    Core1 f = (Core1) c.get(i);
    System.out.println("第" + (i + 1) + "个学生的姓名字是" + f.getXingming());
    } }}
      

  4.   

    c.size()的值为3,如果从0开始,那么只能取到0,1,2,而3越界了
      

  5.   

     i<= c.size();下标越界了
      

  6.   

    你数组下标越界是因为for循环里的i <= c.size();  把=号去掉就可以了。可我实在不明白为何你for循环前的那句输出为什么,大小为:2。  我以为我看错了,运行了下,是3。不知道撸主怎么来的2。
      

  7.   

    根据程序看来把for循环里的i <= c.size();  把=号去掉就可以了。但是我也不明白楼主的大小为2
    而且报的错误也是Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 2, Size: 2按道理应该输出大小为:3
    报的错误是Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
      

  8.   

    谢谢。不过那个0怎么还在呢?why?"".还有我还不知道该怎么给分
      

  9.   

    谢谢。不过那个0怎么还在呢?why?"".还有我还不知道该怎么给分上面有个结贴看到了吗
      

  10.   

    谢谢。不过那个0怎么还在呢?why?"".还有我还不知道该怎么给分上面有个结贴看到了吗看到了呀。我怎么针对个人给分呢?
      

  11.   

    谢谢。不过那个0怎么还在呢?why?"".还有我还不知道该怎么给分上面有个结贴看到了吗看到了呀。我怎么针对个人给分呢?
    右边有个格子是输入分数的。
    4、如何给帖子结帖,结帖如何给分?点击帖子左上方的"结帖"按钮,可以进行如下操作:    单独给分结帖:当您的问题得到解答,请给回答者相应的分数,来结束该帖。当您结帖后,系统将返回给您该帖的50%的可用分。
        注:结帖人不允许给自己的回复发分。
        无满意答案结帖: 当您的问题得不到合适的答案。您可以选择无满意结帖结束这个问题。 注:无满意结帖,系统将回收帖主的悬赏分,且没有任何可用分返还。无满意答复,必须提问满24小时才可以进行操作。
        平均给分结帖:当回复过长参与人数过多时候,您可以使用平均给分的功能。
        注:技术区不允许平均给分结帖。
      

  12.   

    谢谢。不过那个0怎么还在呢?why?"".还有我还不知道该怎么给分上面有个结贴看到了吗我看到了谢谢。下次给分你啊。我仔细看了下,你把我代码复制了然后修改了下。
      

  13.   

    我看到你的csdn博客里添加了新浪微博的链接。我看了你的微博了,你可以告诉我怎么把微博插入到博客页面左侧吗???是否需要代码呢?、Thank you