Saya ingin membuat array baru dari objek yang mengumpulkan dua array yang lebih kecil.
Mereka tidak boleh nol, tetapi ukurannya mungkin 0.
Saya tidak dapat memilih di antara dua cara ini: apakah sama atau lebih efisien (misalnya system.arraycopy () menyalin seluruh bagian)?
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);
atau
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]
}
}
Apakah satu-satunya perbedaan tampilan kode?
EDIT: terima kasih untuk pertanyaan terkait, tetapi mereka tampaknya memiliki diskusi yang belum terpecahkan:
Apakah benar-benar lebih cepat if it is not for native types: byte [], Object [], char []? dalam semua kasus lain, pemeriksaan tipe dijalankan, yang akan menjadi kasus saya dan karenanya akan setara ... bukan?
Pada pertanyaan terkait lainnya, mereka mengatakan bahwa the size matters a lot, untuk ukuran> 24 system.arraycopy () menang, untuk lebih kecil dari 10, manual for loop lebih baik ...
Sekarang saya benar-benar bingung.



arraycopy()adalah panggilan asli, yang pasti lebih cepat.