如何将arraylist的引用传递给数组?

时间:2013-03-08 13:31:32

标签: java arrays arraylist

如何将arraylist的引用传递给数组?

我有一个Arraylist,但方法约束我应该返回一个数组,我应该返回一个数组,其引用与我在方法签名中给出的相同,我不能简单地不使用The ArrayList,因为这将需要在代码中进行大量更改。那么有一个快速的方法吗?

public Skill[] getSkills() {
  if (skills.size() == 0) {
    return null;
  }
  Skill[] result = new Skill[skills.size()];
  result = skills.toArray(result);
  return result;
}

public void setSkills(Skill[] skills) {
  if (skills.length != 0) {
    for (int i = 0; i < skills.length; i++) {
      this.skills.add(i, skills[i]);
    }
  }
}

Junit测试是:

@Test(timeout = 1000)
public void testGetSkills() {
  instance.setSkills(skills);
  assertSame("The returned skill array should be the same", instance.getSkills(), skills);
}

4 个答案:

答案 0 :(得分:2)

  

如何将arraylist的引用传递给数组?

public T[] method() {
List<T> list=....; 
 //other ops
return list.toArray(new T[list.size()]);
}

List#toArray(T..a)方法充当基于数组的API和基于集合的API之间的桥梁。

答案 1 :(得分:1)

考虑Ur方法的参数如下

public Array method (Array signature)
{
ArrayList<object> ArrayList = new ArrayList<object>();

foreach(object test in ArrayList )
{
 if(test == signature)
{
    return test
}  
}
}

由于

答案 2 :(得分:0)

  

我有一个Arraylist但是方法约束我应该返回一个数组

你能不能这样做:

return list.toArray(new String[list.size()]);

假设您的ArrayList当然是字符串 - 请将String替换为相关的任何类型。

答案 3 :(得分:0)

你可以返回list.toArray([list.size()]);