Java – ArrayListと2次元配列を相互に変換する方法を解説
JavaでArrayListと2次元配列を相互に変換するには、以下の方法を使用します。
ArrayListから2次元配列への変換は、toArray()
メソッドを利用します。
例えば、ArrayList<ArrayList<Integer>>
を2次元配列に変換する場合、各内側のリストを個別に配列に変換し、それを外側の配列に格納します。
一方、2次元配列からArrayListへの変換は、Arrays.asList()
やループを用いて各行をリストに変換し、それを外側のArrayListに追加します。
ArrayListから2次元配列への変換方法
JavaのArrayList
を2次元配列に変換する方法について解説します。
ArrayList
は可変長の配列であり、要素の追加や削除が容易ですが、特定の形式でデータを扱いたい場合には2次元配列に変換することが必要です。
以下のコードは、ArrayList
を2次元配列に変換する方法を示しています。
import java.util.ArrayList;
public class App {
public static void main(String[] args) {
// ArrayListの作成
ArrayList<ArrayList<String>> arrayList = new ArrayList<>();
// データの追加
ArrayList<String> row1 = new ArrayList<>();
row1.add("A");
row1.add("B");
arrayList.add(row1);
ArrayList<String> row2 = new ArrayList<>();
row2.add("C");
row2.add("D");
arrayList.add(row2);
// 2次元配列への変換
String[][] array = new String[arrayList.size()][];
for (int i = 0; i < arrayList.size(); i++) {
ArrayList<String> row = arrayList.get(i);
array[i] = row.toArray(new String[0]); // ArrayListを配列に変換
}
// 結果の表示
for (String[] row : array) {
for (String element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
A B
C D
このコードでは、まずArrayList
を作成し、2つの行を追加しています。
その後、ArrayList
のサイズに基づいて2次元配列を初期化し、各行をArrayList
から配列に変換しています。
最後に、変換した2次元配列の内容を表示しています。
2次元配列からArrayListへの変換方法
2次元配列をArrayList
に変換する方法について解説します。
2次元配列は固定サイズのデータ構造ですが、ArrayList
は可変長であるため、データの追加や削除が容易です。
この変換を行うことで、より柔軟にデータを扱うことができます。
以下のコードは、2次元配列をArrayList
に変換する方法を示しています。
import java.util.ArrayList;
public class App {
public static void main(String[] args) {
// 2次元配列の作成
String[][] array = {
{"A", "B"},
{"C", "D"}
};
// ArrayListの作成
ArrayList<ArrayList<String>> arrayList = new ArrayList<>();
// 2次元配列からArrayListへの変換
for (String[] row : array) {
ArrayList<String> listRow = new ArrayList<>();
for (String element : row) {
listRow.add(element); // 要素をArrayListに追加
}
arrayList.add(listRow); // 行をArrayListに追加
}
// 結果の表示
for (ArrayList<String> row : arrayList) {
for (String element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
A B
C D
このコードでは、まず2次元配列を作成し、その後、各行をArrayList
に変換しています。
内側のループで各要素をArrayList
に追加し、外側のループで行全体をArrayList
に追加しています。
最後に、変換したArrayList
の内容を表示しています。
これにより、2次元配列のデータを柔軟に扱うことが可能になります。
実践例:ArrayListと2次元配列の相互変換
ここでは、ArrayList
と2次元配列の相互変換を実際に行う例を示します。
この例では、まずArrayList
を作成し、それを2次元配列に変換します。
その後、変換した2次元配列を再びArrayList
に戻します。
これにより、両者の変換方法を理解することができます。
以下のコードは、ArrayList
と2次元配列の相互変換を行う方法を示しています。
import java.util.ArrayList;
public class App {
public static void main(String[] args) {
// ArrayListの作成
ArrayList<ArrayList<String>> arrayList = new ArrayList<>();
// データの追加
ArrayList<String> row1 = new ArrayList<>();
row1.add("A");
row1.add("B");
arrayList.add(row1);
ArrayList<String> row2 = new ArrayList<>();
row2.add("C");
row2.add("D");
arrayList.add(row2);
// ArrayListから2次元配列への変換
String[][] array = new String[arrayList.size()][];
for (int i = 0; i < arrayList.size(); i++) {
ArrayList<String> row = arrayList.get(i);
array[i] = row.toArray(new String[0]); // ArrayListを配列に変換
}
// 2次元配列からArrayListへの変換
ArrayList<ArrayList<String>> newArrayList = new ArrayList<>();
for (String[] row : array) {
ArrayList<String> listRow = new ArrayList<>();
for (String element : row) {
listRow.add(element); // 要素をArrayListに追加
}
newArrayList.add(listRow); // 行をArrayListに追加
}
// 結果の表示
System.out.println("ArrayListから2次元配列への変換結果:");
for (String[] row : array) {
for (String element : row) {
System.out.print(element + " ");
}
System.out.println();
}
System.out.println("2次元配列からArrayListへの変換結果:");
for (ArrayList<String> row : newArrayList) {
for (String element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
ArrayListから2次元配列への変換結果:
A B
C D
2次元配列からArrayListへの変換結果:
A B
C D
このコードでは、最初にArrayList
を作成し、2つの行を追加しています。
その後、ArrayList
を2次元配列に変換し、さらにその2次元配列を再びArrayList
に変換しています。
最終的に、両方の変換結果を表示することで、相互変換の過程を確認できます。
この実践例を通じて、ArrayList
と2次元配列の使い方をより深く理解することができます。
まとめ
この記事では、ArrayList
と2次元配列の相互変換について詳しく解説しました。
具体的なサンプルコードを通じて、両者の変換方法を実践的に学ぶことができました。
これを機に、Javaのデータ構造を活用して、より柔軟なプログラミングを試みてみてはいかがでしょうか。