Javaでコレクションをリストに変換する
- Java でコンストラクターを使用してコレクションをリストに変換する
- Java で組み込み関数を使用してコレクションをリストに変換する
-
Java で
for
ループを使用してコレクションをリストに変換する -
Java で
collect
を使用してコレクションをリストに変換する
この記事では、Java でコレクションをリストに変換するさまざまな方法を紹介して説明します。
Java でコンストラクターを使用してコレクションをリストに変換する
コンストラクター関数を使用して、変換するコレクションをパラメーターに指定できます。
構文:
List<Generic> listname = new ArrayList<>(collectionName);
例:
import java.util.*;
public class ExpHStoLL {
public static void main(String[] args) {
Set<String> hs = new HashSet<String>();
// Adding names in hs
hs.add("Dhruv");
hs.add("Sahil");
hs.add("Ajay");
System.out.println("Hash Set Collection :" + hs);
// Using constructor of hs for linked list
List<String> MyList = new LinkedList<String>(hs);
System.out.println("\nLinked List after conversion: " + MyList);
}
}
出力:
Hash Set Collection :[Dhruv, Sahil, Ajay]
Linked List after conversion: [Dhruv, Sahil, Ajay]
ここでは、名前のハッシュセットを作成し、コンストラクターhs
を使用してハッシュセットからリストを作成しました。
Java で組み込み関数を使用してコレクションをリストに変換する
Array クラスと Collections クラスのコレクションをリストに変換するための 2つの組み込みメソッドがあります。
Java で asList
を使用してコレクションをリストに変換する
Array クラスは、配列コレクションをリストに変換するための asList()
メソッドを提供します。
構文:
List<Generic> MyList = Arrays.asList(ArrayName);
例:
import java.util.*;
public class ExpArrtoL {
public static void main(String args[]) {
String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
System.out.println("My Array: " + Arrays.toString(MyArray));
// Using asList function
List<String> MyList = Arrays.asList(MyArray);
System.out.println("List using asList(): " + MyList);
}
}
出力:
My Array: [Dhruv, Sahil, Ajay]
List using asList(): [Dhruv, Sahil, Ajay]
上記のコードでは、配列を作成し、配列名 MyArray
を引数として持つ asList()
関数を使用して、コレクションをリストに変換しました。
Java で addAll
を使用してコレクションをリストに変換する
addAll()
は、コレクションをリストに変換するために使用できるコレクションフレームワークで提供されるメソッドです。コレクションの要素は、1つずつまたは配列として指定できます。
これは asList()
メソッドに似ていますが、パフォーマンスが向上し、時間の複雑さが効果的に改善されます。コレクションからリストにアイテムをコピーするには 2つのパラメーターが必要なため、このメソッドを使用する前に、配列とリストの両方を作成する必要があります。
構文:
Collections.addAll(ListName, ArrayName);
例:
import java.util.*;
public class ExpArrtoL {
public static void main(String args[]) {
String[] MyArray = {"Dhruv", "Sahil", "Ajay"};
System.out.println("My Array: " + Arrays.toString(MyArray));
List<String> MyList = new ArrayList<>();
// Using addAll function
Collections.addAll(MyList, MyArray);
System.out.println("List using addAll(): " + MyList);
}
}
出力:
My Array: [Dhruv, Sahil, Ajay]
List using addAll(): [Dhruv, Sahil, Ajay]
Java で for
ループを使用してコレクションをリストに変換する
コンストラクターや組み込み関数を使用したくない場合は、for-each
ループがコレクションをリストに変換するのに役立ちます。この方法は、変換の簡単な方法を提供するため、初心者に適しています。
例:
import java.util.*;
public class ListUsingForLoop {
public static void main(String[] args) {
Set<String> hs = new HashSet<String>();
hs.add("Dhruv");
hs.add("Sahil");
hs.add("Ajay");
System.out.println("Our HashSet HS:" + hs);
// List of the same size as our HashSet hs
List<String> MyList = new ArrayList<String>(hs.size());
// The loop picks each string of HS and adds it to the List
for (String x : hs) MyList.add(x);
System.out.println("\nList made from HS:" + MyList);
}
}
出力:
Our HashSet HS:[Dhruv, Sahil, Ajay]
List made from HS:[Dhruv, Sahil, Ajay]
ここでは、名前のハッシュセットを作成し、ループごとにそれらを使用して、ハッシュセット hs
で見つかった文字列ごとに、その文字列をリスト MyList
に追加するように指定しました。
Java で collect
を使用してコレクションをリストに変換する
ストリームの collect()
関数を使用して、コレクションをリストに変換し、元のコレクションを編集せずに結果を表示することもできます。
collect()
メソッドは、データ構造またはコレクションから要素を収集し、それらを操作するための追加のロジックを提供します。
構文:
List<Generic> ListName = CollectionName.stream().collect(toList());
例:
import java.util.*;
import java.util.stream.*;
public class ExpHStoLL {
public static void main(String[] args) {
Set<String> hs = new HashSet<String>();
// Adding names in hs
hs.add("Dhruv");
hs.add("Sahil");
hs.add("Ajay");
System.out.println("Hash Set Collection :" + hs);
List<String> MyList = hs.stream().collect(Collectors.toList());
System.out.println("\nConverted to List: " + MyList);
}
}
出力:
Hash Set Collection :[Dhruv, Sahil, Ajay]
Converted to List: [Dhruv, Sahil, Ajay]
ストリーム API の collect()
メソッドを使用してコレクションをリストに変換している間、コピーは参照を使用して行われます。
リストは参照データ型であるため、つまり、実際のオブジェクトまたは要素の参照アドレスが格納されているため、リストを変更するとコレクションも変更されます。
元のコレクションから作成されたコピーリストは、浅いコピーです。これは、リストを削除すると、元のコレクションから要素も削除されることを意味します。
これを回避するには、古い参照をコピーするだけでなく、コレクションをリストにコピーすると、リストに新しいメモリが割り当てられるディープコピーを作成します。
関連記事 - Java List
- Java でリストから最初の要素を取得する
- Java でリストをチャンクに分割する
- Java のフィルタ リスト
- Java のリストと Arraylist の違い
- Java を使用してリスト内の要素のインデックスを検索する
- Java でマップ値をリストに変換する