この記事では、配列の長さと配列コピーの内容について紹介します。
配列の長さ
Java では、配列の長さは、配列が保持できる要素の数を指します。配列の長さを取得する事前定義されたメソッドはありません。Java では、配列プロパティ length を使用して配列の長さを取得できます。
array.length : length は配列の最終変数です。長さ変数を使用すると、配列のサイズを取得できます。
コード例:
int[] a1 = new int[8];
int lengthOfA1 = a1.length;
指定されたコード スニペットでは、a1 は 8 エントリの容量を持つ int 型の配列、lengthOfA1 は配列の長さを追跡する変数で、配列名 a1 の後にドット演算子と length 属性を使用します。配列のサイズを決定します。
配列コピー
実際の開発では配列のコピーが頻繁に行われますが、配列のコピー方法は大きく for ループを使用する場合、clone メソッドを使用する場合、arraycopy メソッドを使用する場合の 3 つに分けられます。
for ループ
for ループを使用して配列をコピーする場合、配列の長さプロパティを使用できます。
コードに直接進みましょう。
String[] a1 = {"java", "Spring", "SpringBoot", "MySQL"};
String[] a2 = new String[a1.length];
for (int i = 0; i < a1.length; i++) {
a2[i] = a1[i];
}
コードから、新しい文字列配列 a1 が作成され、配列内に 4 つの文字列があることがわかります。
- 「ジャワ」
- "春"
- 「スプリングブート」
- 「MySQL」
次に、a1 と同じ長さの新しい配列 a2 を作成し、a1 配列をトラバースし、a1 の同じ座標にあるデータを a2 の同じ座標に代入することで、配列間のコピーが実現されます。
クローンメソッド
Object.clone() は、配列内の Object クラスを継承します。
clone メソッドを使用して、プリミティブ型の配列をコピーします。
String[] a1 = {"java", "Spring", "SpringBoot", "MySQL"};
String[] a2 = a1.clone();
クローン作成後の内容は同じですが、保持する参照が異なるため、一方を変更してももう一方には影響しません。
一方、同じ方法を使用して非プリミティブ型の配列のクローンを作成すると、結果は異なります。
arraycopy方法
Java では、System クラスには、配列をコピーする arraycopy() というメソッドが含まれています。この方法は、上記 2 つの方法よりも配列をコピーする優れた方法です。
arraycopy() メソッドを使用すると、ソース配列の指定された部分を宛先配列にコピーできます。
arraycopy(Object src, int srcPos,Object dest, int destPos, int length)
- src : コピーするソース配列
- srcPos : ソース配列内の開始位置 (インデックス)
- dest : ソースから要素がコピーされる宛先の配列
- destPos : 宛先配列内の開始位置 (インデックス)
- length : コピーする要素の数
例を挙げてみましょう:
String[] a1 = {"java", "Spring", "SpringBoot", "MySQL"};
String[] a2 = new String[4];
System.arraycopy(a1, 0, a2, 0, a1.length);
要約する
この記事では、Java の配列の長さと配列をコピーする方法を紹介します (推奨される方法は、arraycopy メソッドを使用することです)。