Javaで配列を連結する代替方法 (Alternative methods for concatenating arrays in Java)
Javaで配列を連結する方法 (How to concatenate two arrays in Java)
Javaで配列を連結するとは、2つの配列を1つの配列に結合することです。これにはいくつかの方法があります。
**System.arraycopy()**を使用する
このメソッドは、ソース配列からターゲット配列にデータをコピーします。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = new int[array1.length + array2.length];
System.arraycopy(array1, 0, result, 0, array1.length);
System.arraycopy(array 2, 0, result, array1.length, array2.len gth);
// resultは{1, 2, 3, 4, 5, 6}になります
**Arrays.copyOf()**を使用する
このメソッドは、指定された配列のコピーを作成し、必要に応じて新しいサイズにすることができます。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = Arrays.copyOf(array1, array1.length + array2.length);
System.arraycopy(array2, 0, result, array1.length, array2.leng th);
// resultは{1, 2, 3, 4, 5, 6}になります
Stream APIを使用する
Java 8以降では、Stream APIを使用して配列を連結することができます。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = Stream.concat(Arrays.stream(array1), Arrays.stream(array2))
.toArray();
// resultは{1, 2, 3, 4, 5, 6}になります
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = new int[array1.length + array2.length];
System.arraycopy(array1, 0, result, 0, array1.length);
System.arraycopy(array 2, 0, result, array1.length, array2.len gth);
// resultは{1, 2, 3, 4, 5, 6}になります
- 解説:
array1
とarray2
は連結したい2つの配列です。result
は連結後の配列を格納するための新しい配列です。そのサイズは、array1
とarray2
の要素数の合計になります。System.arraycopy()
メソッドを使用して、array1
の要素をresult
の先頭からコピーし、その後array2
の要素をresult
のarray1.length
からコピーします。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = Arrays.copyOf(array1, array1.length + array2.length);
System.arraycopy(array2, 0, result, array1.length, array2.leng th);
// resultは{1, 2, 3, 4, 5, 6}になります
- 解説:
Arrays.copyOf()
メソッドを使用して、array1
を指定されたサイズ (array1
とarray2
の要素数の合計) にコピーして新しい配列を作成します。- そして、
System.arraycopy()
メソッドを使用して、array2
の要素をresult
のarray1.length
からコピーします。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] result = Stream.concat(Arrays.stream(array1), Arrays.stream(array2))
.toArray();
// resultは{1, 2, 3, 4, 5, 6}になります
- 解説:
Arrays.stream()
メソッドを使用して、array1
とarray2
を Stream に変換します。Stream.concat()
メソッドを使用して、2つの Stream を連結します。toArray()
メソッドを使用して、連結された Stream を配列に変換します。
Javaで配列を連結する代替方法 (Alternative methods for concatenating arrays in Java)
StringBuilderを使用する (文字配列の場合)
String[] array1 = {"Hello", "world"};
String[] array2 = {"!", "Java"};
StringBuilder sb = new StringBuilder();
for (String str : array1) {
sb.append(str).append(" ");
}
for (String str : array2) {
sb.append(str).append(" ");
}
String result = sb.toString();
// resultは"Hello world ! Java "になります
- 解説:
StringBuilder
を使用して文字列を連結します。- 各配列の要素を
StringBuilder
に追加し、最後にtoString()
メソッドで文字列に変換します。
Listを使用する
String[] array1 = {"Hello", "world"};
String[] array2 = {"!", "Java"};
List<String> list = new ArrayList<>(Arrays.asList(array1));
list.addAll(Arrays.asList(array2));
String[] result = list.toArray(new String[0]);
// resultは{"Hello", "world", "!", "Java"}になります
- 解説:
- 配列を
List
に変換し、addAll()
メソッドを使用して別のList
の要素を追加します。 - 最後に、
toArray()
メソッドを使用してList
を配列に変換します。
- 配列を
java arrays concatenation