【Java】Stream.concatを使って配列を新しいオブジェクト配列にマージする方法
Javaでは、Stream.concatメソッドとArrays.streamメソッドを組み合わせることで、複数の配列を簡単に1つの新しいオブジェクト配列へマージ(結合)できます。元の配列を変更せずに済むため、安全かつ簡潔に処理できるのが特徴です。
以下は、Javaで2つの配列を新しいオブジェクト配列にマージするプログラムの例です。
サンプルコード
import java.util.stream.Stream;
import java.util.Arrays;
import java.io.*;
public class Demo{
public static <T> Object[] concat_fun(T[] my_obj_1, T[] my_obj_2){
return Stream.concat(Arrays.stream(my_obj_1), Arrays.stream(my_obj_2)).toArray();
}
public static void main (String[] args){
Integer[] my_obj_1 = new Integer[]{67, 83, 90};
Integer[] my_obj_2 = new Integer[]{11, 0, 56};
Object[] my_obj_3 = concat_fun(my_obj_1, my_obj_2);
System.out.println("The two objects merged into a single object array : " + Arrays.toString(my_obj_3));
}
}実行結果
The two objects merged into a single object array : [67, 83, 90, 11, 0, 56]
コードの解説
Demoという名前のクラス内には、concat_funメソッドが定義されています。このメソッドはジェネリクス<T>を使用しており、任意の参照型の配列を2つ引数として受け取り、それらを連結した新しいオブジェクト配列を戻り値として返します。
マージの仕組みは以下の通りです。
- Arrays.stream():各配列をストリーム(Stream)に変換します。
- Stream.concat():2つのストリームを1つに連結します。
- toArray():連結されたストリームをObject型の配列として取得します。
mainメソッドでは、まず2つのInteger型の配列(my_obj_1 と my_obj_2)を作成し、concat_funメソッドを呼び出して連結結果を3つ目のオブジェクト配列(my_obj_3)に格納しています。最後にArrays.toString()を使って配列の内容を文字列化し、コンソールに表示しています。
補足:別のマージ方法
Stream API以外にも、System.arraycopy()を使って手動で要素をコピーする方法や、Apache Commons LangライブラリのArrayUtils.addAll()を利用する方法があります。ただし、Java 8以降であれば、上記のようにStream APIを使った方法が最も簡潔で可読性が高いと言えます。
-
JavaScriptでオブジェクトを新しい配列に変換する方法
JavaScriptでは、オブジェクトのプロパティやネストされたデータを取り出し、扱いやすい形で新しい配列にフォーマットできます。本記事では、学校(school)オブジェクトに含まれる生徒情報を、文字列形式の配列へ変換する実践的なコード例を紹介します。 ポイントとなるテクニック このサンプルでは、以下の2つのJavaScript機能を活用しています。 分割代入(Destructuring assignment):オブジェクトから特定のプロパティを簡潔に取り出す構文です。 for...of ループ:配列内の各要素を順番に処理するために使用します。 コード例 <!DOCTYPE html
-
【JavaScript入門】複数のオブジェクトを1つにマージして単一のオブジェクト配列を作成する方法
JavaScriptでは、Object.assign()メソッドとスプレッド構文(...)を組み合わせることで、配列内の複数のオブジェクトを1つのオブジェクトに簡単にマージすることができます。 Object.assign()は、1つ以上のコピー元オブジェクトから、コピー先のオブジェクトへすべてのプロパティをコピーするためのメソッドです。スプレッド構文を使って配列の要素を展開することで、各オブジェクトのキーと値が1つのオブジェクトに統合されます。 コード例 以下のコードは、配列内の複数のオブジェクトを単一のオブジェクトにマージする例です。 <!DOCTYPE html> <ht