Je veux créer un nouveau tableau d'objets rassemblant deux tableaux plus petits.
Ils ne peuvent pas être nuls, mais la taille peut être égale à 0.
Je ne peux pas choisir entre ces deux méthodes: sont-elles équivalentes ou l'une est-elle plus efficace (par exemple, system.arraycopy () copie des morceaux entiers)?
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);
ou
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 seule différence est-elle l'aspect du code?
EDIT: merci pour la question liée, mais ils semblent avoir une discussion non résolue:
Est-ce vraiment plus rapide si it is not for native types: byte [], Object [], char []? dans tous les autres cas, une vérification de type est exécutée, ce qui serait mon cas et donc serait équivalent ... non?
Sur une autre question liée, ils disent que the size matters a lot, pour une taille> 24 system.arraycopy () gagne, pour moins de 10, le manuel pour la boucle est meilleur ...
Maintenant, je suis vraiment confus.



arraycopy()est un appel natif, qui est certainement plus rapide.