[解決済み] どっちが効率的?System.arraycopyとArrays.copyOfのどちらが効率的ですか?
2023-05-17 18:49:05
質問
質問
toArray
メソッドで
ArrayList
の両方を使っています。
System.arraycopy
と
Arrays.copyOf
で配列をコピーします。
public <T> T[] toArray(T[] a) {
if (a.length < size)
// Make a new array of a's runtime type, but my contents:
return (T[]) Arrays.copyOf(elementData, size, a.getClass());
System.arraycopy(elementData, 0, a, 0, size);
if (a.length > size)
a[size] = null;
return a;
}
この2つのコピー方式をどのように比較し、どのような場合にどちらを使うべきでしょうか?
どのように解決するのですか?
違いは
Arrays.copyOf
は要素をコピーするだけでなく、新しい配列も作成します。
System.arraycopy
は既存の配列にコピーします。
のソースは以下の通りです。
Arrays.copyOf
のソースですが、見ての通り、このソースでは
System.arraycopy
を内部で使用して新しい配列を埋めています。
public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
T[] copy = ((Object)newType == (Object)Object[].class)
? (T[]) new Object[newLength]
: (T[]) Array.newInstance(newType.getComponentType(), newLength);
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
関連
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] リフレクションとは何か、なぜ有用なのか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] \0-9]よりも効率が悪い
-
[解決済み] なぜJava 8のOptionalは引数で使ってはいけないのか
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み] 配列のコピーにはforループではなくSystem.arraycopy(...)を使うのが良いのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス制限です。タイプ 'Application' は API ではない(必要なライブラリに制限がある)。
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Uncaught ReferenceError: は定義されていません。
-
が 'X-Frame-Options' を 'sameorigin' に設定したため、フレーム内に存在する。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
Java:未解決コンパイル問題の解決方法
-
Java の double データ型における 0.0 と -0.0 の問題
-
htmlとwordの相互変換の実装(画像あり)
-
ApiModel と @ApiModelProperty の使用法