我创建了一个LinkedList
,其中存储了Employee
个对象。我需要编写一个方法convertToArray
,通过从Employee
获取LinkedList
来生成一个{{1}}数组。
有什么想法吗?
答案 0 :(得分:4)
最简单的方法是使用LinkedList.toArray方法
// create an array and copy the list to it
Employee[] array = list.toArray(new Employee[list.size()]);
但是,如果您只是在学习并希望迭代地执行此操作。想想你将如何声明并将所有项目放入数组中。
首先,你需要做什么?
1)声明Employee的数组
为了做到这一点,你要知道数组的大小,因为声明后数组的大小不能改变。从List继承的方法名为.size()
Employee[] array = new Employee[list.size()]
2)对于数组中的每个插槽,复制列表中的相应元素
为此,您需要使用for循环
for(int i = 0; i < array.length; i++) {
//access element from list, assign it to array[i]
}
答案 1 :(得分:2)
public <T> T[] convert (List<T> list) {
if(list.size() == 0 ) {
return null;
}
T[] array = (T[])Array.newInstance(list.get(0).getClass(), list.size());
for (int i=0;i<list.size();i++) {
array[i] = list.get(i);
}
return array;
}
答案 2 :(得分:1)
Employee[] arr = new Employee[list.size()];
int i = 0;
for(Employee e : list) {
arr[i] = e;
i++;
}