如何从arraylist创建一个数组

时间:2014-01-01 14:22:25

标签: java arrays arraylist

ArrayList<Student> alist = new ArrayList();
// object type is student
//arraylist contains student objects        
Student[] arr= new Student[un.size()];

for(int i = 0; i <= alist .size(); i++){
    them[i] = arr.get(i);
}

我想要做的是创建一个学生数组而不会使数组超出范围异常。

5 个答案:

答案 0 :(得分:3)

在Java(以及大多数语言)中,数组从零开始。如果您有一个大小为N的数组,则索引将来自[0,N-1](总大小为N)。

i <= alist .size() 

应该是

i < alist .size()
   ↑
 No "=" 

为什么不简单地使用toArray

答案 1 :(得分:1)

你非常接近。只要i小于或等于alist.size(),您的for循环条件就会循环。如果你这样做,你将永远运行一个。

例如,如果alist中只有一个项目,那么你的大小将为1,但你真的只想循环到0。

改变这个:

for(int i = 0; i <= alist.size()  ; i++)

对此:

for(int i = 0; i <  alist.size()  ; i++)

答案 2 :(得分:1)

你真正需要的是them = alist.toArray(new Student[them.length])。这将简单地复制数据。

答案 3 :(得分:0)

ArrayList<Student> alist = new ArrayList();
// object type is student
//arraylist contains student objects        
Student[] arr= new Student[un.size()];
alist.toArray(arr);

答案 4 :(得分:0)

您也可以尝试这样做,以上所有内容都是正确的,但这很简单

String[] arr = alist.toArray(new Student[un.size()]);

list.toArray return an array containing all of the elements in this collection