covert list array
このチュートリアルでは、Javaリストを配列やその他のコレクションに変換する方法について説明します。リストを配列、文字列、セットに、またはその逆に変換する例が含まれています。
以前のチュートリアルでは、リストコレクションの詳細について説明しました。リスト、イテレータなどのさまざまな操作を見てきました。リストが与えられると、このリストを、文字列、配列、ArrayList、setなどの他のコレクションまたはデータ構造に変換できます。
=> 独占的なJavaトレーニングチュートリアルシリーズについては、こちらをご覧ください。
学習内容:
リスト変換
ここで実際に行うことは、あるコレクション/構造から別のコレクション/構造に要素を転送することです。その際、各コレクションまたはデータ構造には独自のレイアウトがあるため、実際には要素のレイアウトを変更します。
このチュートリアルでは、リストから他のデータ構造への変換、およびその逆の変換について説明します。
リストを文字列に変換する
要素のリストを文字列表現に簡単に変換できます。ほとんどの場合、文字列または文字のリストを文字列表現に変換する必要があります。
リストを文字列に変換するには、さまざまな方法があります。最も人気のあるものを以下に説明します。
#1)toStringメソッドの使用
これは、リストを文字列に変換する最も簡単な方法です。このメソッドでは、リストを文字列表現に変換するリストで「toString」メソッドを使用するだけです。
以下のプログラムは、toStringメソッドの実装を示しています。
import java.util.Arrays; import java.util.List; // Convert List of Characters to String in Java class Main { public static void main(String() args) { // create and initialize a character list List strList = Arrays.asList('H', 'e', 'l', 'l', 'o'); //convert list to string using toString method System.out.println('List converted to string representation:
' + strList.toString()); //replace comma between characters with blanks String string = strList.toString() .substring(1, 3 * strList.size() - 1) .replaceAll(', ', ''); // print string System.out.println('String representation by removing delimiters:
' + string); } }
出力:
このプログラムでは、文字リストを文字列表現に変換した後、区切り文字を削除して単一の単語として表現することにより、文字列がさらに洗練されていることがわかります。
#2)コレクタークラスの使用
Java 8以降では、「Collectors」クラスでストリームAPIを使用して、リストを文字列に変換できます。
例:
import java.util.stream.Collectors; import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize list List strList = Arrays.asList('W', 'o', 'r', 'l','d'); // convert list to string using collect and joining() method String string= strList.stream().map(String::valueOf).collect(Collectors.joining()); // print string System.out.println('List converted to string:' + string); } }
出力:
上記のプログラムでは、ストリームAPIを使用し、値をマップしてから、Collectorsクラスのjoining()メソッドを使用して、リストを文字列に変換します。
#3)StringBuilderクラスの使用
リストを文字列に変換する3番目の方法は、StringBuilderオブジェクトを使用することです。ここで、リスト内の各要素は、ループを使用してStringBuilderオブジェクトに追加されます。次に、StringBuilderオブジェクトは、toStringメソッドを使用してその文字列表現に変換されます。
デモについては、次のプログラムを確認してください。
import java.util.Arrays; import java.util.List; class Main { public static void main(String() args) { // create and initialize the list List strList = Arrays.asList('I', 'n', 'd', 'i', 'a'); // object of stringBuilder StringBuilder sb = new StringBuilder(); // use append method to append list element to StringBuilder object for (Character ch : strList) { sb.append(ch); } // convert StringBuilder object to string using toString() String string = sb.toString(); // print string System.out.println('List converted to string: ' + string); } }
出力:
上記のプログラムは、リスト内の要素が追加されるStringBuilderオブジェクトの使用法を示しています。次に、オブジェクトは文字列に変換されます。
リストを配列に変換する
要素のリストが与えられたら、このリストを配列に変換する必要があります。これを行うには、以下に説明する方法のいずれかを使用できます。
#1)toArrayの使用
リストを配列に変換する最も簡単な方法は、リストの「toArray」メソッドを使用することです。
次のプログラムは、toArrayメソッドのこの実装を示しています。
import java.util.*; public class Main { public static void main(String() args) { //create and initialize list List strList = new LinkedList(); strList.add('This'); strList.add('is'); strList.add('Java'); strList.add('Tutorial'); System.out.println('The given list:' + strList); //use toArray method to convert list to array String() strArray = strList.toArray(new String(0)); //print the array System.out.println('The Array from List: '); for (String val : strArray) System.out.print(val + ' '); } }
出力:
上記のプログラムでは、「toArray」メソッドを使用して文字列のリストを文字列配列に変換しました。
#2)Java8ストリームの使用
ワイヤレスルーターのセキュリティキーは何ですか
リストを配列に変換する次の方法は、Java 8のストリームAPIを使用することです。この場合、リストは最初にストリームに変換され、次にstream()。toArrayを使用して配列に変換されます。
次のJavaプログラムは、この変換を示しています。
import java.util.*; class Main { public static void main (String()args) { //create and initialize the list List l_list = new LinkedList (); l_list.add ('Software'); l_list.add ('Testing'); l_list.add ('Help'); l_list.add ('Tutorial'); System.out.println('The given list:' + l_list); //Convert list to array using stream and toArray methods String() str_array = l_list.stream ().toArray (String()::new); //print the array System.out.println('The Array converted from list : '); for (String val:str_array) System.out.print (val + ' '); } }
出力:
上記のプログラムは、Java 8のストリームAPIを使用して、リストを配列に変換します。次に、foreachループを使用して配列が出力されます。
#3)getメソッドの使用
これは、リストを配列に変換するもう1つの方法です。ここでは、リストの個々の要素を取得するために使用できるリストのget()を使用します。
get()メソッドを使用してリストを配列に変換するプログラムを以下に示します。
import java.io.*; import java.util.List; import java.util.LinkedList; class Main { public static void main (String() args) { List colors_list = new LinkedList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); colors_list.add('Yellow'); System.out.println('Given list: ' + colors_list); //define the array String() colors_array = new String(colors_list.size()); // get list elements into the array for (int i =0; i 出力:

上記のプログラムでは、リストと同じサイズの配列を作成しました。次に、ループ内で、リスト要素がget()メソッドを使用して取得され、配列に割り当てられます。
配列をリストに変換
リストを配列に変換できるので、Javaで配列をリストに変換することもできます。以下に、配列をリストに変換するために使用できるいくつかの方法を示します。
#1)プレーンJavaコードの使用
これは、配列をリストに変換する従来の方法です。ここでは、ループを使用して、各配列要素を1つずつリストに追加します。このためには、リストのaddメソッドが使用されます。
次のプログラムは、配列をリストに変換する従来の方法を実装しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'Python', 'C++', 'SQL', 'Perl' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // Create a List List strlist = new ArrayList(); // Iterate through the array and add each element to the list for (String val : strArray) { strlist.add(val); } // Print the List System.out.println('
List obtained from array: ' + strlist); } }
出力:

#2)asList()メソッドの使用
配列をリストに変換する次のメソッドは、ArraysクラスのasList()メソッドを使用することです。ここでは、配列を引数としてasList()メソッドに渡すことができ、取得したリストを返します。
次のプログラムはこれを示しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { //create and intialize array Integer() oddArray = { 1,3,5,7,9,11 }; //declare a list and use asList method to assign the array to list List oddList = Arrays.asList(oddArray); // Print the List System.out.println('List from array: ' + oddList); } }
出力:

上記のプログラムでは、奇数の配列があります。次に、整数のリストを作成し、それをリストであるasListメソッドの出力に割り当てます。
#3)Collection.addAll()メソッドの使用
配列とリストはどちらもJavaのコレクションフレームワークの一部であるため、CollectionsクラスのaddAll()メソッドを使用することもできます。
次のプログラムは、Collections.addAll()メソッドを使用して配列をリストに変換する方法を示しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String strArray() = { 'Java', 'C++', 'C', 'Perl', 'Python' }; // Print the Array System.out.println('Array: ' + Arrays.toString(strArray)); // create a string list List myList = new ArrayList(); // Add array to list using Collections addAll method Collections.addAll(myList, strArray); // Print the List System.out.println('List obtained from array: ' + myList); } }
出力:

ここでは、配列を初期化しました。空のリストを作成しました。次に、Collections.addAll()メソッドを使用して、リストと配列を引数として渡します。このメソッドを正常に実行すると、リストに配列要素が入力されます。
#4)Java8ストリームの使用
配列をリストに変換する次のアプローチは、Java 8 StreamAPIとCollectorsクラスを使用することです。ここでは、配列が最初にストリームに変換され、次に要素がストリームを使用してリストに収集されます。収集方法。最終的にリストが返されます。
次のプログラムは、StreamAPIを使用して配列をリストに変換する実装を示しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String args()) { // Create and initialize an Array String colorsArray() = { 'Red', 'Green', 'Blue', 'Yellow', 'Magenta' }; // Print the Array System.out.println('Array: ' + Arrays.toString(colorsArray)); // convert the Array to List using stream () and Collectors class List colorslist = Arrays .stream(colorsArray) .collect(Collectors.toList()); // Print the List System.out.println('List from Array: ' + colorslist); } }
出力:

上記のプログラムでは、色の配列が作成されます。次に空のリストが作成され、ストリームAPIを使用して配列から取得されたリストがリストに割り当てられます。
リストを設定に変換
セットは、重複する値を許可しない要素の順序付けられていないコレクションです。セットはJavaコレクションフレームワークの一部です。必要に応じて、リストをセットに、またはその逆に変換できます。
このセクションでは、リストをセットに変換するために使用されるいくつかのメソッドを見てみましょう。
#1)従来の方法を使用する
従来のJavaコードを使用して、リストをセットに変換できます。これで、HashSetまたはtreeSetを作成できます。次に、addメソッドを使用して、各リスト要素をループ内のセットに追加します。
この実装を以下に示します。
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List strList = Arrays.asList('Java', 'Perl', 'Python', 'C++', 'C'); //print the list System.out.println('The list : ' + strList); //create a set Set hashSet = new HashSet(); //add list elements to hashset for (String ele : strList) hashSet.add(ele); //print the set System.out.println('HashSet from list:'); for (String val : hashSet) System.out.print(val + ' '); } }
出力:

上記のプログラムでは、文字列型のHashSetオブジェクトを作成したことがわかります。次に、拡張forループを使用して、リストの各要素がセットに追加されます。最後に、セットが印刷されます。
推奨読書= >> JavaのHashSet
#2)HashSetまたはtreesetコンストラクターの使用
次の方法は、setコンストラクターを使用することです。ここでは、セットコンストラクター(treeSetまたはHashSet)を作成します。リストは引数としてこのコンストラクターに渡されます。このリストを使用して、セットが作成されます。
この実装については、以下のプログラムを確認してください。
import java.util.*; class Main { public static void main(String() args) { // Create a list of strings List strList = Arrays.asList('Red', 'Green', 'Blue', 'Yellow', 'Cyan', 'Magenta'); System.out.println('Original List:' + strList); // Creating a hash set using constructor and pass list to the constructor Set hashSet = new HashSet(strList); System.out.println('
HashSet created from list:'); //print the hashSet for (String val : hashSet) System.out.print(val + ' '); //Create a treeset using constructor and pass list to the constructor Set treeSet = new TreeSet(strList); System.out.println('
TreeSet from list: '); //print the treeset for (String x : treeSet) System.out.print(x + ' '); } }
出力:

上記のプログラムでは、引数としてリストを渡すことにより、HashSetとtreeSetの両方を作成します。最後に、HashSetとtreesetの両方の内容が表示されます。
#3)addAllメソッドの使用
これは、前に見たコレクションのaddAllメソッドと同じです。ここでは、addAllメソッドを使用して、リストの内容をセットにコピーします。
次のプログラムは、addAllメソッドの使用法を示しています。
import java.util.*; class Main { public static void main(String() args) { // Creating a list of strings List intList = Arrays.asList(1,3,5,7,9,11,13); System.out.println('Original List: ' + intList); //create a hashset Set hashSet = new HashSet(); //add elements of list to hashSet using addAll method hashSet.addAll(intList); System.out.println('HashSet created from list: '); //print the hashSet for (Integer val : hashSet) System.out.print(val + ' '); } }
出力:

このプログラムは、HashSetオブジェクトを作成します。次に、リストをパラメーターとしてHashSetオブジェクトでaddAllメソッドが呼び出されます。このメソッドは、リストの内容をセットにコピーします。
#4)Java8ストリームの使用
すでに見たように、Java 8ストリームを使用して、リストをセットを含む他のコレクションに変換することもできます。これを行うには、stream()。collectメソッドを使用する必要があります。
次のプログラムは、この実装を示しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a list of strings List colorsList = Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow'); System.out.println('Original List:' + colorsList); // Convert to set using stream and Collectors class toSet() method Set colorsSet = colorsList.stream().collect(Collectors.toSet()); System.out.println('The set from list:'); //print the set for (String x : colorsSet) System.out.print(x + ' '); }
出力:

上記のプログラムは、リストから配列への変換の場合に示されているものと似ています。最初に、リストがストリームに変換され、次にcollectメソッドがストリーム要素を収集してセットに変換します。
リストからセットへの変換を実行するさまざまなメソッドを見てきたので、セットをリストに変換するために使用されるメソッドを見てみましょう。
セットをリストに変換
リストをセットに変換する方法と同様に、セットをリストに変換することもできます。この変換には、上記と同じ方法を使用できます。唯一の違いは、リストの場所を切り替えてプログラムに設定することです。
以下に、各メソッドのセットからリストへの変換の例を示します。
#1)プレーンJavaの使用
importjava.util.*; class Main { public static void main(String() args) { // Create a set(hashset) and initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the set System.out.println('The set elements:'); for (String x : hashSet) System.out.print(x + ' '); //create a list (ArrayList) List strList = new ArrayList(hashSet.size()); //traverse the set and add its elements to the list for (String x : hashSet) strList.add(x); //print the list System.out.println('
Created ArrayList:' + strList); } }
出力:

上記のプログラムは、セットを宣言して初期化します。次に、リストを作成し、各セット要素をリストに追加します。最後に、リストを印刷します。
#2)コンストラクターの使用
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Delhi'); hashSet.add('Mumbai'); hashSet.add('Chennai'); hashSet.add('Kolkata'); //print the Set System.out.println('The set :'); for(String str: hashSet) System.out.print(str + ' '); //pass hashset to linkedlist constructor List l_List = new LinkedList(hashSet); //print the linked list System.out.println ('
LinkedList from set: ' + l_List); } }
出力:

ここでは、setオブジェクトを引数としてリストコンストラクターを使用できます。これにより、すべての設定要素がリストオブジェクトにコピーされます。
#3)addAllメソッドの使用
import java.util.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize it Set hashSet = new HashSet(); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); hashSet.add('Cyan'); hashSet.add('Magenta'); hashSet.add('Yellow'); //print the Set System.out.println('The set: '); for(String x:hashSet) System.out.print(x + ' '); //create a list(ArrayList) List colorList = new ArrayList(); //use addAll method to add elements from set colorList.addAll(hashSet); //print the list System.out.println('
The ArrayList from set: ' + colorList); } }
出力:

このプログラムでは、リストオブジェクトが作成されます。次に、Collections.addAll()メソッドを使用して、セットの要素がリストに追加されます。
#4)Java8ストリームの使用
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set(hashset) of strings & initialize the set Set hashSet = new HashSet(); hashSet.add('Yellow'); hashSet.add('Magenta'); hashSet.add('Cyan'); hashSet.add('Red'); hashSet.add('Green'); hashSet.add('Blue'); //print the Set System.out.println('The set:'); for(String str : hashSet) System.out.print(str + ' '); //create a list and assign it elements of set through stream and Collectors class List strList = hashSet.stream().collect(Collectors.toList()); //print the list System.out.println('
List obtained from set: ' + strList); } }
出力:

上記のプログラムに示すように、Java 8ストリームとcollectメソッドを使用して、セットをリストに変換することもできます。
配列対リスト
配列とリストの違いについて説明しましょう。
アレイ リスト 配列はJavaの基本的なデータ構造です。 リストは、Javaのコレクションフレームワークの一部であるインターフェイスであり、LinkedList、ArrayListなどのクラスの多くを拡張できます。 サイズは固定されています リストのサイズは動的です。 配列要素には()を使用してアクセスできます。 リストメンバーには、メソッドを使用してアクセスします。 配列には、要素としてオブジェクトだけでなくプリミティブ型も含めることができます。 リストにはオブジェクトのみを含めることができます。 配列は、その要素で演算子を使用できます。 リストは演算子を使用できません。代わりに、useメソッドをリストします。 配列は、型の安全性を確保するためにジェネリックスと連携することはできません。 リストは一般的なものにすることができます。
よくある質問
Q#1)Javaでリストを配列に変換するにはどうすればよいですか?
回答: Javaでリストを配列に変換する基本的な方法は、Listインターフェイスの「toArray()」メソッドを使用することです。
以下の簡単な呼び出しは、リストを配列に変換します。
Object() array = list.toArray();
リストを配列に変換するために、上記で説明した他の方法もあります。
Q#2)配列はJavaのリストですか?
回答: いいえ。配列は、固定長のJavaの基本構造です。リストインターフェイスからは拡張されません。リストインターフェイスから拡張され、配列に似た構造はArrayListです。
Q#3)Javaで配列をリストに変換するにはどうすればよいですか?
回答: Javaで配列をリストに変換する基本的なメソッドの1つは、ArraysクラスのasList()メソッドを使用することです。
List aList = Arrays.asList (myarray);
これとは別に、このチュートリアルで前述したように、配列をリストに変換するメソッドは他にもあります。
Q#4)Javaでより高速なセットまたはリストはどれですか?
回答: 保存されているデータによって異なります。データが一意である場合、リストはより適切で高速です。大きなデータセットがある場合は、セットを探してください。セット構造は通常、リストの10倍のメモリを必要とします。
Q#5)ArrayListとSetの違いは何ですか?
回答: リストは順序付けられた要素のコレクションであり、セットは順序付けられていない要素のコレクションです。リストに重複する要素を含めることはできますが、セットに重複する要素を含めることはできません。
結論
このチュートリアルでは、配列、セット、およびその逆へのさまざまなリスト変換を見てきました。また、配列とリストの主な違いも確認しました。
この次のチュートリアルでは、ArrayList、LinkedListなどのリストクラスについて詳しく説明します。
=> ここで完璧なJavaトレーニングガイドをチェックしてください。
推奨読書