Quiero crear una nueva matriz de objetos juntando dos matrices más pequeñas.
No pueden ser nulos, pero el tamaño puede ser 0.
No puedo elegir entre estas dos formas: ¿son equivalentes o una más eficiente (por ejemplo, system.arraycopy () copia fragmentos completos)?
MyObject[] things = new MyObject[publicThings.length+privateThings.length];
System.arraycopy(publicThings, 0, things, 0, publicThings.length);
System.arraycopy(privateThings, 0, things, publicThings.length, privateThings.length);
o
MyObject[] things = new MyObject[publicThings.length+privateThings.length];
for (int i = 0; i < things.length; i++) {
if (i<publicThings.length){
things[i] = publicThings[i]
} else {
things[i] = privateThings[i-publicThings.length]
}
}
¿La única diferencia es el aspecto del código?
EDITAR: gracias por la pregunta vinculada, pero parecen tener una discusión sin resolver:
¿Es realmente más rápido si it is not for native types: byte [], Object [], char []? en todos los demás casos, se ejecuta una verificación de tipo, que sería mi caso y entonces sería equivalente ... ¿no?
En otra pregunta vinculada, dicen que the size matters a lot, para un tamaño> 24, system.arraycopy () gana, para un tamaño menor que 10, el bucle manual es mejor ...
Ahora estoy realmente confundido.



arraycopy()es una llamada nativa, que sin duda es más rápida.