-4

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

我有一个 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

4 回答 4

2

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

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

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

于 2013-03-08T13:33:15.770 回答
1

考虑 Ur 方法的参数如下

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

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

谢谢

于 2013-03-08T13:49:19.763 回答
0

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

你不能只做:

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

当然,假设您ArrayList是 Strings 在这里 -String用任何相关的类型替换。

于 2013-03-08T13:33:23.487 回答
0

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

于 2013-03-08T13:35:57.350 回答