Javaでは、 配列 そして リスト は 2 つの最も重要なデータ構造です。このセクションでは、次のことを学びます Java配列をリストに変換する方法。 私たちも作成しました Javaプログラム 配列をリストに変換する さまざまな Java メソッドを使用して。
Java での配列からリストへの変換
Java配列 同じデータ型の複数の値のコレクションです。配列にはオブジェクトとプリミティブ型を含めることができます。それは配列の定義によって異なります。配列定義がプリミティブ型の場合、配列の値は伝染性のメモリ位置に格納されます。配列にオブジェクト要素が含まれる場合、要素はヒープ セグメントに格納されます。
で ジャワ 、 リスト は、Java Collections フレームワークに属するインターフェイスです。要素をオブジェクトの形式で順序付けて保存し、挿入順序を保持します。これにより、重複した値を保存できるようになります。クラス 配列リスト 、 リンクリスト 、 ベクター そして スタック List インターフェイスを実装します。
Java では、配列をリストに変換するための 5 つのメソッドが提供されています。
- ネイティブメソッド
- Arrays.asList() メソッドの使用
- Collections.addAll() メソッドの使用
- Java 8 ストリーム API の使用
- Guava Lists.newArrayList() メソッドの使用
ネイティブメソッド
これは、Java 配列をリストに変換する最も簡単な方法です。このメソッドでは、まず空のリストを作成し、配列のすべての要素をリストに追加します。例を見てみましょう。
ArrayToListExample1.java
ラテックスの偏微分
import java.util.*; public class ArrayToListExample1 { public static void main(String args[]) { //creating an array String array[] = { 'Golf', 'Soccer', 'Baseball', 'Volleyball', 'Tennis', 'Badminton', 'Rugby', 'Archery', 'Skiing'}; //prints the array before conversion System.out.println('Array before conversion: '+ Arrays.toString(array)); //calling the generic function that converts Array into List List list = ArrayToListConversion(array); //print the List System.out.println('Array as List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T array[]) { //creating the constructor of the List class List list = new ArrayList(); //using for-each loop to iterate over the array for (T t : array) { //adding each element to the List list.add(t); } //returns the list converted into Array return list; } }
出力:
Arrays.asList() メソッドの使用
java.util パッケージに属する Java Arrays クラスのメソッドです。 asList() メソッドを Collection.toArray() メソッドとともに使用すると、配列ベースの API とコレクションベースの API の間のブリッジとして機能します。
構文:
public static List asList(T... a)
このメソッドは、リストをサポートするパラメーターとして配列を解析します。指定された配列のシリアル化可能な固定サイズのリスト ビューを返します。例を見てみましょう。
ArrayToListExample2.java
Javaの部分文字列関数
import java.util.*; public class ArrayToListExample2 { public static void main(String args[]) { //creating an array to be converted String arr[] = { 'Aston Martin', 'Bugatti', 'Bentley', 'Alfa Romeo', 'Buick', 'Acura', 'Audi', 'BMW', 'Buick' }; //prints array before conversion System.out.println('Array before conversion: '+ Arrays.toString(arr)); //calling generic method that converts Array into List List list = ArrayToListConversion(arr); //prints the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //invoking the asList() method and passing the array to be converted List list = Arrays.asList(arr); //returns the list return list; } }
出力:
Collections.addAll() メソッドの使用
の方法です。 Java コレクション クラス。これは java.util パッケージに属します。このクラスは次の名前のメソッドを提供します。 全て追加する() 。このメソッドを使用して配列をリストに変換できます。すべての要素を指定されたコレクションに追加します。要素は個別に指定することも、配列の形式で指定することもできます。それは同じように機能します c.addAll(Arrays.asList(elements))。 これは、他の実装よりも高速な実装です。
構文:
public static boolean addAll(Collection c, T... elements)
次の 2 つのパラメータを解析します。
戻ります 真実 呼び出しの結果としてコレクションが変更された場合。次の例外がスローされます。
- パラメータ c が追加操作をサポートしていない場合は、次のメソッドがスローされます。 UnsupportedOperationException 。
- 指定された配列要素に 1 つ以上の null 値が含まれており、c が null 要素を許可しない場合は、次のエラーがスローされます。 NullPointerException 。
- 配列要素によってパラメータ c に追加できない場合は、スローされます。 IllegalPointerException 。
例を見てみましょう。
ArrayToListExample3.java
import java.util.*; public class ArrayToListExample3 { public static void main(String args[]) { //creating an Array to be converted String arr[] = { 'San Jose', 'Dallas', 'Chicago','San Antonio', 'Los Angeles', 'Portland', 'Tucson' }; //prints the Array System.out.println('Array before conversion: '+ Arrays.toString(arr)); //method calling List list = ArrayToListConversion(arr); //print the List System.out.println('Array after conversion: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creating the constructor of thr List class List list = new ArrayList(); //the method adds Array to the List Collections.addAll(list, arr); //returns the list return list; } }
出力:
JavaScriptスリープ
Java 8 ストリーム API の使用
Java 8 はストリーム API を提供します オブジェクトのコレクションを処理します。これは、パイプライン化して目的の結果を生成できる一連のメソッドです。元のデータ構造は変更されないことに注意してください。パイプラインメソッドに基づいて出力を提供します。ストリームはさまざまな方法で実現できますが、次のプログラムでは次の方法を使用しました。 Arrays.stream(オブジェクト[]) 流れを達成するために。
Collectors.toList() メソッド: このメソッドは、エンカウンター メソッドで新しく作成されたリストに入力要素を収集する Collector を返します。
構文:
public static Collector<t,?,list> toList() </t,?,list>
ここで、T は指定した要素のタイプです。このメソッドは、型、変更可能性、スレッド安全性、直列化可能性を保証しません。
Java プログラムで Stream API を使用して、配列をリストに変換してみましょう。
ArrayToListExample4.java
import java.util.*; import java.util.stream.Collectors; public class ArrayToListExample4 { //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a list from the specified Array and returns the List return Arrays.stream(arr).collect(Collectors.toList()); } public static void main(String args[]) { //creating an array to be converted into List String arr[] = { 'Python', 'HTM', 'Java', 'C', 'C++', 'JavaScript', 'Ruby', 'Swift', 'PHP' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //calling the method created above and storing the elements into the List object List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } }
出力:
Guava Lists.newArrayList() の使用
の方法です。 リスト 所属するクラス com.google.common.collect パッケージ。クラスはメソッドを提供します newArrayList() 指定された配列の要素を持つ変更可能な空の ArrayList インスタンスを作成します。
メモリの交換
構文:
public static ArrayList newArrayList(E... elements)
注: newArrayList() メソッドは、Java 6 以前のバージョンで使用できます。それ以降のバージョンでは非推奨になります。上記のメソッドの代わりに、ArrayList コンストラクターを直接使用します。
ArrayToListExample5.java
import static com.google.common.collect.Lists.*; import java.util.*; public class ArrayToListExample5 { public static void main(String args[]) { //creating an Array to be converted into a List String arr[] = { 'Mango', 'Banana', 'Grapes', 'Apple', 'Plum', 'Blackberry', 'Papaya', 'Orange' }; //prints the Array before conversion System.out.println('Array: '+ Arrays.toString(arr)); //convert the Array to List List list = ArrayToListConversion(arr); //prints the List System.out.println('List: ' + list); } //creating a generic function that converts the Array into List public static List ArrayToListConversion(T arr[]) { //creates a List from the specified Array return Lists.newArrayList(arr); } }
出力: