可能重复:
如何在Java中连接两个数组?
我有两个对象
HealthMessage[] healthMessages1;
HealthMessage[] healthMessages2;
HealthMessage[] healthMessagesAll;
healthMessages1 = x.getHealth( );
healthMessages2 = y.getHealth( );
Run Code Online (Sandbox Code Playgroud)
我应该如何加入这两个对象,所以我只能返回一个:
return healthMessagesAll;
Run Code Online (Sandbox Code Playgroud)
推荐的方式是什么?
Che*_*pir 32
使用Apache commons collecion API是一个很好的方法:
healthMessagesAll = ArrayUtils.addAll(healthMessages1,healthMessages2);
Run Code Online (Sandbox Code Playgroud)
Mat*_*eid 20
我将分配一个总长度为healthMessages1和的数组,healthMessages2并使用System.arraycopy或两个for循环来复制它们的内容.这是一个示例System.arraycopy:
public class HelloWorld {
public static void main(String []args) {
int[] a = new int[] { 1, 2, 3};
int[] b = new int[] { 3, 4, 5};
int[] r = new int[a.length + b.length];
System.arraycopy(a, 0, r, 0, a.length);
System.arraycopy(b, 0, r, a.length, b.length);
// prints 1, 2, 3, 4, 5 on sep. lines
for(int x : r) {
System.out.println(x);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Kai*_*Kai 13
这更直观地编写,您不必处理数组索引:
Collection<HealthMessage> collection = new ArrayList<HealthMessage>();
collection.addAll(Arrays.asList(healthMessages1));
collection.addAll(Arrays.asList(healthMessages2));
HealthMessage[] healthMessagesAll = collection.toArray(new HealthMessage[] {});
Run Code Online (Sandbox Code Playgroud)
..但不要问我与它相比的性能System.arraycopy.
| 归档时间: |
|
| 查看次数: |
88608 次 |
| 最近记录: |