将链接列表转换为数组

时间:2014-12-05 22:15:02

标签: java arrays

我创建了一个LinkedList,其中存储了Employee个对象。我需要编写一个方法convertToArray,通过从Employee获取LinkedList来生成一个{{1}}数组。

有什么想法吗?

3 个答案:

答案 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++;
}