- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列のコピーと nativeMethod について)
配列のコピーとnativeMethodについて
このQ&Aのポイント
- 配列のコピーについての処理速度の比較や、nativeMethodの意味について説明してください。
- nativeMethodは他言語で書かれたメソッドを使用していることを意味します。
- arraycopyを使った配列のコピーが良い方法なのか、別の方法があるのかについて教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
> (1)arraycopyを使うより、配列のコピーは自分でループをまわして、コピーする方が処理的に早いとか、あるんでしょうか? 論理的には、Java そのもので書かれたメソッドは、実行時に真の機械語に直すために余計な時間が掛かるので、ネイティブメソッドの方が早いということになります。ただ最近ではランタイムの性能の上がって、非ネイティブのメソッドの速度も向上しているようです。もちろん、ネイティブで書いても下手なコーディングをしていると遅くなりますが。 実際のところ、こういった速さの違いが現れてくるのは、コピーを何百回とか何千回とか行った場合になるでしょうから、あまり気にすることもないと思います。 > (2)まだまだ、nativeMethodについて、理解が浅いのですが、要するに他言語で書かれているものを使用していると言う考え方で良いでしょうか? いいと思います。 ただし、あらかじめ機械語にコンパイルしておく必要があるので、実行時の OS ごとにプログラムを作っておく必要があるとかいった、不利な点もあります。 > (3)配列のコピーを行う場合、arraycopy を使うのが良いでしょうか? それとも、別の方法を使用されていますでしょうか? 配列のコピーをするには、自分でループを作るか、arraycopy を使うか、配列を clone するか、それくらいの方法を使うのが多いと思います。実際にどれでやるかは人それぞれだと思います。 ただ clone は「うりふたつ」の配列しか作れませんし、多次元配列のディープコピーは clone や arraycopy ではできませんから、自分でループを書くことになります。
お礼
丁寧な回答ありがとうございます。 全てに答えていただいて,すっきりしました。 色々と手探りな部分が多く、コンパイルは通っているけど 実際に、その処理が適切かどうかなど、判断つきにくいものですね。 色々アドバイスいただいたお陰で,だいぶ見えてきた気がします。 ありがとうございました。