如何将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);
}
答案 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()]);