このセクションでは、次のことについて説明します。 セットを変換する方法 ( ハッシュセット または ツリーセット ) をリスト ( 配列リスト または リンクリスト )。
Java で Set を List に変換するには、次の方法があります。
それぞれタイプスクリプト
- ネイティブアプローチ
- コンストラクター (ArrayList または LinkedList) の使用
- ArrayList addAll() メソッドの使用
- 使用する ストリーム Javaで
ネイティブアプローチ
ネイティブ アプローチのロジックは非常にシンプルです。このアプローチでは、単純に Set (HashSet または TreeSet) を作成し、その Set を反復処理して、ループを利用して Set のすべての要素をリストに追加します。
SetToListExample1.java
import java.util.*; public class SetToListExample1 { public static void main(String args[]) { //creating a Set of type String Set set = new HashSet(); //adding elements to the Set set.add('Bordeaux'); set.add('Cannes'); set.add('Chamonix'); set.add('Chartres'); set.add('Clermont-Ferrand'); set.add('Limoges'); set.add('Marseille'); set.add('Nice'); set.add('Paris'); //determines the size of Set int n = set.size(); //creates an ArrayList of size n List list = new ArrayList(n); //loop iterates over Set for (String x : set) //adds elements to the list list.add(x); System.out.println('ArrayList is: '); //loop iterates over List for (String x : list) //prints the elements System.out.println(x); } }
出力:
ArrayList is: Cannes Bordeaux Marseille Nice Clermont-Ferrand Chartres Limoges Chamonix Paris
コンストラクターの使用 (ArrayList または LinkedList クラス)
ロジックは上記と同じです。唯一の違いは、ArrayList クラスと LinkedList クラスのコンストラクターを使用し、セット要素をコンストラクターに渡したことです。
List list = new ArrayList(set); List lList = new LinkedList(set);
SetToListExample2.java
import java.util.*; public class SetToListExample2 { public static void main(String args[]) { //creating a HashSet of type String Set set= new HashSet(); //adding elements to the Set set.add('Sharjah'); set.add('Dubai'); set.add('Abu Dhabi'); set.add('Kalba'); set.add('Dhaid'); set.add('Hatta'); //creates an ArrayList using constructor and passing elements to the constructor List list = new ArrayList(set); System.out.println('ArrayList is: '); //loop iterates over the list for (String x : list) //prints the ArrayList System.out.println(x); System.out.println(' LinkedList is: '); //creates LinkedList using constructor and passing elements to the constructor List lList = new LinkedList(set); //loop iterates over LinkedList for (String x : lList) //prints the LinkedList System.out.println(x); } }
出力:
icloudの写真をアンドロイドに
ArrayList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi LinkedList is: Sharjah Dhaid Kalba Hatta Dubai Abu Dhabi
ArrayList.addAll() メソッドの使用
ArrayList.addAll() メソッドは、指定されたコレクション内のすべての要素を、指定されたコレクションのイテレータによって返される順序でこのリストの末尾に追加します。これは、AbstractCollection クラスの addAll() メソッドをオーバーライドします。
SetToListExample3.java
import java.util.*; public class SetToListExample3 { public static void main(String args[]) { //converting HashSet to ArrayList //creating a HashSet of type String Set set = new HashSet(); //adding elements to the Set set.add('Texas'); set.add('California'); set.add('Illinois'); set.add('Dallas'); set.add('San Jose'); set.add('California'); set.add('Austin'); set.add('Columbus'); //creates a constructor of the ArrayList class List list = new ArrayList(); //adding the set elements to the list using the addAll() method list.addAll(set); System.out.println('ArrayList is: '); //loop iterates over the LinkedList for (String x : list) //prints the ArrayList System.out.println(x); //converting HashSet to LinkedList List linkList = new LinkedList(); //adding Set elements to the LinkedList using the addAll() method linkList.addAll(set); System.out.println(' LinkedList is: '); //loop iterates over the LinkedList for (String x : linkList) //prints the LinkedList System.out.println(x); } }
出力:
ArrayList is: Texas Illinois Columbus California Austin Dallas San Jose LinkedList is: Texas Illinois Columbus California Austin Dallas San Jose
Java でのストリームの使用
ストリームを使用してセットをリストに変換する場合、まずセットをストリームに変換し、次にストリームをリストに変換します。 Java 8 以降のバージョンでのみ動作します。
ハッシュセットとハッシュマップ
List list = set.stream().collect(Collectors.toList());
ストリーム(): メソッド stream() は、セットまたはリストの通常のオブジェクト ストリームを返します。
Stream.collect(): Stream クラスのcollect() メソッドは、任意の Stream の要素をコレクションに蓄積するために使用されます。
Collectors.toList(): このメソッドは、入力要素を新しい List に収集する Collector を返します。
クラスカルアルゴリズム
例を見てみましょう。
SetToListExample4.java
import java.util.*; import java.util.stream.*; public class SetToListExample4 { public static void main(String args[]) { //Creating a hash set of strings Set set = new HashSet(); //adding elements to the Set set.add('London'); set.add('England'); set.add('Wales'); set.add('Scotland'); set.add('Bristol'); set.add('Cambridge'); //converts set to stream and then stream to list List list = set.stream().collect(Collectors.toList()); System.out.println('List is: '); //loop iterates over the list for (String x : list) //prints the list elements System.out.println(x); } }
出力:
List is: Cambridge Bristol Wales London England Scotland