JavaでLinkedListを配列に変換する方法|toArray()メソッドの使い方を徹底解説
JavaのLinkedListクラスが提供するtoArray()メソッドを使うと、現在のLinkedListオブジェクトをObject型の配列に変換して取得できます。この配列には、リスト内のすべての要素が先頭から末尾まで正しい順序で格納されます。toArray()メソッドは、配列ベースのAPIとコレクションベースのAPIをつなぐ「橋渡し」の役割を果たす重要なメソッドです。
LinkedListを配列に変換する手順
LinkedListを配列に変換するには、以下の手順に従います。
LinkedListクラスをインスタンス化します。
add()メソッドを使ってリストに要素を追加します。
作成したLinkedListに対してtoArray()メソッドを呼び出し、Object型の配列を受け取ります。
Object型配列の各要素をString型など必要な型にキャストして変換します。
サンプルコード:toArray()でObject配列を取得する
import java.util.Arrays;
import java.util.LinkedList;
public class LinkedListToArray {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
// リストに要素を追加
list.add("JavaFX");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
list.add("OpenNLP");
list.add("JOGL");
list.add("Hadoop");
list.add("HBase");
list.add("Flume");
list.add("Mahout");
list.add("Impala");
// toArray()でObject型配列を取得
Object[] objectArray = list.toArray();
int length = objectArray.length;
String[] stringArray = new String[length];
// 各要素をString型にキャスト
for (int i = 0; i < length; i++) {
stringArray[i] = (String) objectArray[i];
}
System.out.println("配列の内容: \n" + Arrays.toString(stringArray));
}
}
実行結果
配列の内容: [JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
上記の例では、toArray()が返すObject型配列の各要素を、ループ処理で個別にString型へキャストしています。要素数が多い場合はやや冗長になるため、次に紹介する方法が便利です。
より簡単な方法:new String[0]を引数に渡す
toArray()メソッドの引数にnew String[0]を渡すと、キャスト処理を書かずに直接String型の配列として結果を受け取ることができます。これはJavaの慣用的なイディオムの一つで、引数に渡した配列のサイズがリストの要素数より小さい場合、自動的に適切なサイズの新しい配列が生成される仕組みを利用しています。
サンプルコード:String配列として直接取得する
import java.util.Arrays;
import java.util.LinkedList;
public class LinkedListToArray {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<String>();
// リストに要素を追加
list.add("JavaFX");
list.add("Java");
list.add("WebGL");
list.add("OpenCV");
list.add("OpenNLP");
list.add("JOGL");
list.add("Hadoop");
list.add("HBase");
list.add("Flume");
list.add("Mahout");
list.add("Impala");
// new String[0]を渡してString配列として直接取得
String[] stringArray = list.toArray(new String[0]);
System.out.println("配列の内容: \n" + Arrays.toString(stringArray));
}
}
実行結果
配列の内容: [JavaFX, Java, WebGL, OpenCV, OpenNLP, JOGL, Hadoop, HBase, Flume, Mahout, Impala]
まとめ
LinkedListを配列に変換する際は、toArray()メソッドを使用します。Object型配列として受け取ってから各要素をキャストする方法と、toArray(new String[0])のように型を指定した配列を引数に渡して直接取得する方法の2通りがあります。後者の方がコードが簡潔になり型安全性も高まるため、実務では引数付きのtoArray()を使うのが一般的です。
-
Javaで文字配列をリーダー(Reader)に変換する方法を徹底解説
Javaでは、CharArrayReaderクラスを使用することで、文字配列をリーダー(Reader)として扱うことができます。CharArrayReaderはReaderクラスのサブクラスであり、文字入力ストリームとして利用可能な文字バッファを実装しています。このクラスを使うと、メモリ上の文字配列から、開始位置(オフセット)を指定して全てまたは一部の文字を読み取ることができます。ファイルやネットワーク経由ではなく、プログラム内のデータをストリームとして処理したい場合に非常に便利です。CharArrayReaderの主なメソッドclose():ストリームを閉じ、関連するリソースを解放しますma
-
JavaでList(リスト)を配列に変換する方法|toArray()とArrays.asList()の使い方
Javaの開発において、List(リスト)と配列(Array)の相互変換は非常によく使われる基本的な操作です。 Listを配列に変換する最も簡単かつ推奨される方法は、.toArray()メソッドを使うことです。逆に、配列をListに戻したい場合は、Arrays.asList()メソッドを使用します。 以下では、文字列(String)のListや整数(Integer)のListを、それぞれ対応する配列に変換する具体例を紹介します。 String型のListを配列に変換する import java.util.ArrayList; import java.util.List; public cl