Android中将ArrayList中元素的值放不到数组里面?

在程序中, 我想把ArrayList中的元素放到数组里面,但是总是报错是什么情况,求大神解答~非常感谢!

 private static ArrayList<Integer> drwaPAck = new ArrayList<>();
 public int rateSize;
 public int[] rateSizeArray = new int[rateSize];
 ...
 rateSize = t;
 for(int r = 0 ; r< rateSize; r++){
     rateSizeArray[r] = drawPack.get(r);
 }
 程序运行到for循环rateSizeArray[r] = drawPack.get(r);的时候,就会报错,
 java.lang.ArrayIndexOutOfBoundsException:length = 0;index = 0
 但是这是不可能的呀,因为单独用log打印drawPack.get(r)时有值的
 百度挺多都是这样的啊,不知道是哪里出错了,初学Android,还求大神解答!在线等~

private static ArrayList drwaPAck = new ArrayList<>();
public int rateSize;
public int[] rateSizeArray;
...
rateSize = t;
rateSizeArray = new int[rateSize];
for(int r = 0 ; r< rateSize; r++){
rateSizeArray[r] = drawPack.get(r);
}

在rateSize = t 之后 在初始化数组

rateSize = t;,这个t是什么东西,这句话会改变rateSize 的值,这样for循环中就可能越界

LIst.toArray();可以把list转为数组,你程序里的数组在初始化时的大小就已经固定了
你可以这样修改下:
rateSize = t;
rateSizeArray = new int[rateSize];
for(int r = 0 ; r< rateSize; r++){
rateSizeArray[r] = drawPack.get(r);
}

rateSize = t;
这一句莫名其妙了,非要这样用的话,必须保证 t<= rateSize; 不然肯定会出现java.lang.ArrayIndexOutOfBoundsException

你这节奏。。。
数组初始化的时候就要固定长度,你先初始化了长度就会固定,后面再给rateSize赋值后循环的话,会可能造成数组下标越界!