2019.01.03

Javaプログラミング

配列のコピーを作る

ここでは、配列のコピー(複写)を作る方法を紹介します。

ここで紹介する方法は、コピー元の配列引数として渡して、コピーされた配列を戻すメソッドです。

メソッドの中で、引数と同じ要素数配列を新しく作成し、その新しい配列に元の配列の値を代入します。最後に新しい配列を戻します。

Javaソースコード

ここから、配列をコピーするJavaソースコードを使って解説していきます。

ArrayCopy.java

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
public class ArrayCopy {
	// 配列をコピー作成するメソッド
	private static int[] array_copy( int[] srcary )
	{
		// 元の配列srcaryの要素数でint配列desaryを作成
		int[] desary = new int[ srcary.length ];

		// 配列desaryにsrcaryの値を代入
		for ( int i = 0; i < srcary.length; ++ i ) {
			desary[ i ] = srcary[ i ];
		}

		// 作成した配列desaryを戻す
		return desary;
	}

	// メイン
	public static void main( String[] args ) {
		// 数値群
		int[] src = { 1, 2, 4, 8, 16, 32, 64 };
		// 新しく作成する配列(コピー先)
		int[] des;

		// 配列の値をコピー(srcの値をdesにコピー)
		des = array_copy( src );

		// 結果を確認
		for ( int i = 0; i < des.length; ++ i ) {
			System.out.println( des[ i ]  );
		}
	}
}

コンパイル ソースコードが「ANSI」の場合

C:\talavax\javasample>javac -encoding sjis ArrayCopy.java

コンパイル ソースコードが「UTF-8」の場合

C:\talavax\javasample>javac ArrayCopy.java

実行

C:\talavax\javasample>java ArrayCopy

実行結果

1
2
4
8
16
32
64

出力結果から、int型配列srcの値が、desにコピーされていることが確認できます。

ここから、ソースコードについて解説してきます。

002
003
004
	// 配列をコピー作成するメソッド
	private static int[] array_copy( int[] srcary )
	{

private static int[] array_copy( int[] srcary )が配列をコピーするメソッドです。srcaryがコピー元の配列です。

005
006
		// 元の配列srcaryの要素数でint配列desaryを作成
		int[] desary = new int[ srcary.length ];

コピー元の配列srcaryの要素数(srcary.length)で、コピー先の配列desaryを初期化しています。

008
009
010
011
		// 配列desaryにsrcaryの値を代入
		for ( int i = 0; i < srcary.length; ++ i ) {
			desary[ i ] = srcary[ i ];
		}

for文を使って、コピー先の配列desaryの各要素に、コピー元の配列srcaryの値を代入にしています。

013
014
		// 作成した配列desaryを戻す
		return desary;

メソッドの最後に、配列desaryをreturn文で戻しています。

017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
	// メイン
	public static void main( String[] args ) {
		// 数値群
		int[] src = { 1, 2, 4, 8, 16, 32, 64 };
		// 新しく作成する配列(コピー先)
		int[] des;

		// 配列の値をコピー(srcの値をdesにコピー)
		des = array_copy( src );

		// 結果を確認
		for ( int i = 0; i < des.length; ++ i ) {
			System.out.println( des[ i ]  );
		}
	}

実際に、array_copyメソッドを使って配列の値をコピーしています。25行目が実際にメソッドを呼んでコピーを作成している箇所です。

以上です。

関連コンテンツ

Javaの学習に役立つソースコードを多数紹介しています。是非、ご覧ください。

2022.09.10

byte型配列をそのままコピーするメソッドの作り方をソースコードを使って詳しく解説しています。

2023.06.07

double型配列をそのままコピーするメソッドの作り方をソースコードを使って詳しく解説しています。

2023.06.07

float型配列をそのままコピーするメソッドの作り方をソースコードを使って詳しく解説しています。

2023.06.07

long型配列をそのままコピーするメソッドの作り方をソースコードを使って詳しく解説しています。

2023.06.07

配列を使うJavaソースコードを多数紹介しています。

2021.05.18

プログラミング、ITに関する用語をまとめています。

2022.10.17

メソッドを抜けるときに使用するreturn文について説明しています。

2020.03.20

変数やクラスに格納されている値をコンソール出力する方法は?

2020.03.23

プログラムの最初に実行されるメソッドは?

2022.12.13

プログラミングで使う変数って何?

2020.03.23

Javaのプログラムを書いてみませんか?プログラムの書き方をくわしく説明しています。

2020.03.23

「Javaソースコード」から実行可能な「オブジェクトコード」に変換する方法をくわしく説明しています。

2020.03.23

同じ型の変数(データ)を複数個まとめて管理するデータの持ちかたがあります。これが配列です。くわしくは、記事をご覧ください。

2016.01.14

メソッドの定義方法を詳しく解説しています。Javaのサンプルソースコードを使った説明もあります。

2020.03.23

プログラミング言語とは?種類や特徴について説明しています。

2022.08.03

処理を繰り返すために使用するfor文について解説しています。

2020.03.23

広告