-4

配列リストの参照を配列に渡すにはどうすればよいですか?

私は 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 とコレクション ベースの 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に置き換えます。String

于 2013-03-08T13:33:23.487 に答える