package a;
import java.util.*;
public class ArrayListTest{
   static int num;
   static void cation()
   {
    ArrayList a=new ArrayList();    for(num=0;num<5;num++)
    {
        a.add(new temp(1+num,2+num,3+num,4+num));
        
     
        temp b=(temp)a.get(num);
       // a.set(1,100);
        System.out.println("num="+num+","+"a="+b.a+"b="+b.b+"c="+b.c+"d="+b.d);
       
    
}  
  
    
        
    
    
}
        public static void main(String[] as)
        {
            ArrayListTest j=new ArrayListTest();            j.cation();
        }
}
class temp{
    int a;
    int b;
        int c;
            int d;
           public temp(int a,int b,int c,int d)
            {
                this.a=a;
                this.b=b;
                this.c=c;
                this.d=d;
            }
}
请问你们知道我这个程序a.set(1,100);怎么错了吗?应该怎么用呀?

解决方案 »

  1.   

    public E set(int index,
                 E element)将此列表中指定位置的元素替换为指定的元素
    你写的是有些乱,那个地方来个a.set(1,100);什么意思啊
      

  2.   

    set
    public E set(int index,
                 E element)
    用指定的元素替代此列表中指定位置上的元素。 
    这个是api中的,但是我不是很明白?E是什么意思?
      

  3.   

    不太明白,你算的是什么。不过pubilic ArrayList.set(int index, Object element)中的index是从0开始的,你第一次add的时候set(1,100)会造成数组出界,应该是set(0,100)吧。
      

  4.   

    另外这种用法比较危险,因为element 指的是对象的一个实例,在替换的过程中应该保持类型的一致性,你在数组里add的是一个Class temp的实例,那么在set的时候也应该替换相同的实例:
    set(0,new temp(1+100,2+100,3+100,4+100));