本帖最后由 cool1700 于 2011-08-09 11:30:01 编辑

解决方案 »

  1.   

    System.out.println(arrayList2.get(1).getTypeName()); <----- 错误在这里
    一共只有1个,下标=0
      

  2.   

    你在for循环里面打印一下就知道了
      

  3.   

    arrayList2 的下标是从0开始的
        所以  你 应该是 System.out.println(arrayList2.get(0).getTypeName());
      

  4.   


    先打印一下它System.out.println(arrayList2.get(1));
    System.out.println(arrayList2.get(1).getTypeName());
      

  5.   

    从你的打印结果和错误提示来看,貌似没有问题,不过因为输出流和错误流不同步,所以也有可能是你贴出的信息不一定是按顺序打印的,初步判定
    System.out.println(arrayList2.get(1).getTypeName()); //这里可能出错了,最好先判断size
    System.out.println(arrayList2.size());
    其次,可能别的地方修改了arrayList2,所以导致循环里出错
      

  6.   


    这句应该没错吧 床头柜是这句输出的 既然输出了 就木有问题啊
    arraylist2的大小是2 这个也输出出来了  里面两个元素  我用get(1)取第二个元素 貌似没问题吧?
      

  7.   

    for(int j=0;j<arrayList2.size();j++)
    {
    arrayList2.get(j).getTypeName();
    }
    改成
    for(int j=1;j<=arrayList2.size();j++)
    {
    arrayList2.get(j).getTypeName();
    }
      

  8.   

    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里有东西错了?
      

  9.   

    楼主,很认真的告诉你,你这段代码没错误.根据你的代码片段模拟了一下,不知道是否有出入.
    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();
    } }
    }
      

  10.   

    是不是有别的线程修改了list, 如果是单线程执行的,应该不会报错的吧