java arraylist conversions other collections
このチュートリアルでは、Set、LinkedList、Listsなどの他のコレクションへのArrayList変換と、これらのコレクションの違いについて説明します。
これまで、JavaのArrayListに関連するほとんどすべての概念を見てきました。 ArrayListクラスによって提供されるさまざまな操作またはメソッドを使用してArrayListを作成および操作する以外に、ArrayListを1つ以上のコレクションに変換する必要がある場合もあります。
=> ゼロからJavaを学ぶには、ここにアクセスしてください。
このチュートリアルでは、ArrayListから、List、LinkedList、Vector、Setなどを含む他のコレクションへの変換の一部について説明します。ArrayListとStringの間の変換についても検討します。変換後、ArrayListsと他のコレクション(Arrays、List、Vector、LinkedListなど)の違いについても説明します。
学習内容:
- ArrayListから文字列への変換
- 文字列からArrayListへの変換
- JavaでリストをArrayListに変換する
- ArrayListをJavaで設定するように変換する
- JavaでセットをArrayListに変換する
- JavaのArrayListの配列
- Javaの配列のArrayList
- JavaでのリストとArrayListの比較
- ベクトル対ArrayList
- ArrayListとLinkedList
- よくある質問
- 結論
- 推奨読書
ArrayListから文字列への変換
次のメソッドを使用して、ArrayListをStringに変換できます。
#1)StringBuilderオブジェクトの使用
import java.util.ArrayList; public class Main { public static void main(String args()) { //Create and initialize the ArrayList ArrayList strList = new ArrayList(); strList.add('Software'); strList.add('Testing'); strList.add('Help'); //print the ArrayList System.out.println('The ArrayList: ' + strList); //define a stringbuilder object StringBuffer sb = new StringBuffer(); //append each ArrayList element to the stringbuilder object for (String str : strList) { sb.append(str + ' '); } //convert stringbuilder to string and print it. String myStr = sb.toString(); System.out.println('
String from ArrayList: ' + myStr); } }
出力:
ArrayList:(ソフトウェア、テスト、ヘルプ)
ArrayListの文字列:ソフトウェアテストヘルプ
上記のプログラムでは、StringBuilderオブジェクトが作成されます。次に、forEachループを使用して、ArrayListの各要素がStringBuilderオブジェクトに追加されます。次に、StringBuilderオブジェクトが文字列に変換されます。 StringBuilderの「append」メソッドを使用することに注意してください。文字列に適切な区切り文字を追加することもできます。
上記の例では、区切り文字としてスペース(““)を使用しています。
#2)String.join()メソッドを使用する
String.join()メソッドを使用して、ArrayListをStringに変換できます。ここで、適切な区切り文字を結合メソッドに渡すこともできます。
以下のプログラムはこれを示しています。
import java.util.ArrayList; public class Main { public static void main(String() args) { // create and initialize the ArrayList ArrayList metroList = new ArrayList(); metroList.add('Delhi'); metroList.add('Mumbai'); metroList.add('Chennai'); metroList.add('Kolkata'); //print the ArrayList System.out.println('The ArrayList: ' + metroList); // Join with an empty delimiter to concat all strings. String resultStr = String.join(' ', metroList); System.out.println('
String converted from ArrayList: '+resultStr); } }
出力:
ArrayList:(デリー、ムンバイ、チェンナイ、コルカタ)
ArrayListから変換された文字列:Delhi Mumbai Chennai Kolkata
ArrayListを引数としてString.join()メソッドに区切り文字とともに直接渡すことがわかります。
単純なStringArrayListsの場合、String.join()がStringに変換するための最良のメソッドです。ただし、より複雑なArrayListsオブジェクトの場合は、StringBuilderを使用する方が効率的です。
文字列からArrayListへの変換
文字列をArrayListに変換するには、次の2つの手順があります。
- 文字列はsplit()関数を使用して分割され、部分文字列(適切な区切り文字で分割)は文字列配列に格納されます。
- 文字列を分割して取得した文字列配列は、Arraysクラスの「asList()」メソッドを使用してArrayListに変換されます。
文字列をArrayListに変換するプログラムを以下に示します。
import java.util.ArrayList; import java.util.List; import java.util.Arrays; public class Main { public static void main(String args()){ //define a string String myStr = 'The string to ArrayList program'; //convert string to array using split function on spaces String strArray() = myStr.split(' '); //print the string System.out.println('The input string : ' + myStr); //declare an ArrayList List strList = new ArrayList(); //convert string array to ArrayList using asList method strList = Arrays.asList(strArray); //print the resultant ArrayList System.out.println('
The ArrayList from String:' + strList ); } }
出力:
jarファイルを何で開きますか
入力文字列:ArrayListプログラムへの文字列
StringからのArrayList:(The、string、to、ArrayList、program)
上記のプログラムでは、文字列をスペースに分割し、文字列配列に収集します。次に、この配列は文字列のArrayListに変換されます。
JavaでリストをArrayListに変換する
ArrayListは、Listインターフェイスを実装します。 ListをArrayListのような実装に変換する場合は、ListインターフェイスのaddAllメソッドを使用して変換できます。
以下のプログラムは、すべてのリスト要素をArrayListに追加することにより、リストをArrayListに変換する方法を示しています。
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String a()){ //create a list & initiliaze it List collections_List = new ArrayList(); collections_List.add('ArrayList'); collections_List.add('Vector'); collections_List.add('LinkedList'); collections_List.add('Stack'); collections_List.add('Set'); collections_List.add('Map'); //print the list System.out.println('List contents: '+collections_List); //create an ArrayList ArrayList myList = new ArrayList(); //use addAll() method to add list elements to ArrayList myList.addAll(collections_List); //print the ArrayList System.out.println('
ArrayList after adding elements: '+myList); } }
出力:
リストの内容:(ArrayList、Vector、LinkedList、Stack、Set、Map)
要素を追加した後のArrayList:(ArrayList、Vector、LinkedList、Stack、Set、Map)
ArrayListをJavaで設定するように変換する
次のメソッドは、ArrayListをSetに変換します。
#1)従来の反復アプローチを使用する
これは従来のアプローチです。ここでは、リストを繰り返し処理し、ArrayListの各要素をセットに追加します。
以下のプログラムには、文字列のArrayListがあります。文字列のHashSetを宣言します。次に、forEachループを使用して、ArrayListを反復処理し、各要素をHashSetに追加します。
同様の方法で、ArrayListをtreeSetに変換することもできます。
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //Add each ArrayList element to the set for (String x : colorsList) hSet.add(x); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
出力:
ArrayList:(赤、緑、青、シアン、マゼンタ、黄色)
ArrayListから取得したHashSet:(赤、シアン、青、黄、マゼンタ、緑)
#2)セットコンストラクターの使用
ArrayListをセットに変換する次のメソッドは、コンストラクターを使用することです。このメソッドでは、ArrayListを引数としてsetコンストラクターに渡し、setオブジェクトをArrayList要素で初期化します。
以下のプログラムは、セットオブジェクトの作成におけるArrayListの使用法を示しています。
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a TreeSet Set tSet = new TreeSet(colorsList); //Print the TreeSet System.out.println('
TreeSet obtained from ArrayList: ' + tSet); } }
出力:
ArrayList:(赤、緑、青、シアン、マゼンタ、黄色
ArrayListから取得したTreeSet:(青、シアン、緑、マゼンタ、赤、黄色)
#3)addAllメソッドの使用
SetのaddAllメソッドを使用して、ArrayListのすべての要素をセットに追加することもできます。
次のプログラムは、addAllメソッドを使用して、ArrayListの要素をHashSetに追加します。
import java.util.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); //Declare a HashSet Set hSet = new HashSet(); //use addAll method of HashSet to add elements of ArrayList hSet.addAll(colorsList); //Print the HashSet System.out.println('
HashSet obtained from ArrayList: ' + hSet); } }
出力:
ArrayList:(赤、緑、青、シアン、マゼンタ、黄色)
ArrayListから取得したHashSet:(赤、シアン、青、黄、マゼンタ、緑)
#4)Java8ストリームの使用
ストリームは、Java 8に新しく追加されたものです。このストリームクラスは、ArrayListをストリームに変換してから設定するメソッドを提供します。
以下のJavaプログラムは、ストリームクラスメソッドを使用してArrayListをsetに変換する方法を示しています。
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create & initialize an ArrayList ArrayList colorsList = new ArrayList (Arrays.asList('Red', 'Green', 'Blue', 'Cyan', 'Magenta', 'Yellow')); //print the ArrayList System.out.println('The ArrayList:' + colorsList); // Convert ArrayList to set using stream Set set = colorsList.stream().collect(Collectors.toSet()); //Print the Set System.out.println('
Set obtained from ArrayList: ' + set); } }
出力:
ArrayList:(赤、緑、青、シアン、マゼンタ、黄色)
ArrayListから取得したセット:(赤、シアン、青、黄、マゼンタ、緑)
JavaでセットをArrayListに変換する
前のセクションでは、ArrayListからSetへの変換を見てきました。 SetからArrayListへの変換も、上記と同じメソッドを使用しますが、setとArrayListの位置が変わる点が異なります。
SetをArrayListに変換するプログラミング例を以下に示します。各メソッドの他の説明は同じままです。
#1)反復アプローチ
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList ArrayList numList = new ArrayList(set.size()); //add each set element to the ArrayList using add method for (String str : set) numList.add(str); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
出力:
与えられたセット:(1、2、3)
セットから取得したArrayList:(One、Two、Three)
上記のプログラムでは、Setを反復処理し、各set要素をArrayListに追加します。
#2)コンストラクターの使用
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and pass set to the constructor List numList = new ArrayList(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
出力:
与えられたセット:(1、2、3)
セットから取得したArrayList:(One、Two、Three)
上記のプログラムは、セットとArrayListを作成します。 ArrayListオブジェクトは、コンストラクターで引数としてsetオブジェクトを提供することによって作成されます。
#3)addAllメソッドの使用
import java.util.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList List numList = new ArrayList(); //use addAll method of ArrayList to add elements of set numList.addAll(set); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
出力:
与えられたセット:(1、2、3)
セットから取得したArrayList:(One、Two、Three)
ここでは、ArrayListのaddAllメソッドを使用して、セットの要素をArrayListに追加します。
#4)Java8ストリームの使用
import java.util.*; import java.util.stream.*; class Main { public static void main(String() args) { // Create a set of strings & add elements to it Set set = new HashSet(); set.add('One'); set.add('Two'); set.add('Three'); //print the set System.out.println('The given Set: ' + set); //create an ArrayList and using stream method,assign stream of elements to ArrayList List numList = set.stream().collect(Collectors.toList()); //print the ArrayList System.out.println('
ArrayList obtained from Set: ' + numList); } }
出力:
与えられたセット:(1、2、3)
セットから取得したArrayList:(One、Two、Three)
上記のプログラムは、ストリームクラスを使用してSetをArrayListに変換します。
JavaのArrayListの配列
名前が示すように、ArrayListの配列は、その要素としてArrayListsで構成されます。この機能は定期的には使用されませんが、メモリスペースの効率的な使用が必要な場合に使用されます。
次のプログラムは、JavaでArrayListsの配列を実装します。
iPhoneとAndroid用の無料タイムカードアプリ
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String() args) { //define and initialize a num_list List num_list = new ArrayList(); num_list.add('One'); num_list.add('Two'); num_list.add('Two'); //define and initialize a colors_list List colors_list = new ArrayList(); colors_list.add('Red'); colors_list.add('Green'); colors_list.add('Blue'); //define Array of ArrayList with two elements List() arrayOfArrayList = new List(2); //add num_list as first element arrayOfArrayList(0) = num_list; //add colors_list as second element arrayOfArrayList(1) = colors_list; //print the contents of Array of ArrayList System.out.println('Contents of Array of ArrayList:'); for (int i = 0; i 出力:
ArrayListの配列の内容:
(1、2、2)
(赤、緑、青)

上記のプログラムでは、最初に2つのリストを定義します。次に、2つのArrayListの配列を宣言します。この配列の各要素は、前に定義したArrayListです。最後に、ArrayListの配列の内容は、forループを使用して表示されます。
Javaの配列のArrayList
ArrayListsの配列があるのと同じように、ArrayList ofArraysも持つことができます。ここで、ArrayListの個々の要素は配列です。
以下のプログラムは、配列のArrayListを示しています。
import java.util.*; public class Main { public static void main(String() args) { // declare ArrayList of String arrays ArrayList ArrayList_Of_Arrays = new ArrayList(); //define individual string arrays String() colors = { 'Red', 'Green', 'Blue' }; String() cities = { 'Pune', 'Mumbai', 'Delhi'}; //add each array as element to ArrayList ArrayList_Of_Arrays.add(colors); ArrayList_Of_Arrays.add(cities); // print ArrayList of Arrays System.out.println('Contents of ArrayList of Arrays:'); for (String() strArr : ArrayList_Of_Arrays) { System.out.println(Arrays.toString(strArr)); } } }
出力:
配列のArrayListの内容:
(赤、緑、青)
(プネ、ムンバイ、デリー)

上記のプログラムは、配列のArrayListを示しています。最初に、文字列配列のArrayListを宣言します。これは、ArrayListの各要素が文字列配列になることを意味します。次に、2つの文字列配列を定義します。次に、各配列がArrayListに追加されます。最後に、ArrayList ofArraysの内容を出力します。
内容を出力するには、forループを使用してArrayListをトラバースします。反復ごとに、Arrays.toString()メソッドを使用して配列を持つArrayList要素の内容を出力します。
JavaでのリストとArrayListの比較
次の表は、ListとArrayListの違いの一部を示しています。
リスト 配列リスト リストはJavaのインターフェースです ArrayListはJavaコレクションフレームワークの一部です リストはインターフェースとして実装されます ArrayListはコレクションクラスとして実装されます コレクションインターフェイスを拡張します Listインターフェースを実装し、AbstractListを拡張します System.Collection.generic名前空間の一部 System.Collections名前空間の一部 Listを使用すると、インデックスを使用してアクセスできる要素のリストを作成できます。 ArrayListを使用すると、コンテンツの変更に応じてサイズが自動的に変更される要素またはオブジェクトの動的配列を作成できます。
ベクトル対ArrayList
以下に、VectorとArrayListの違いのいくつかを示します。
配列リスト LinkedList ArrayListはListインターフェースを実装します LinkedListは、ListおよびDequeインターフェースを実装します。 ArrayListでは、データの保存とアクセスが効率的です。 LinkedListは、データの操作に優れています。 ArrayListは、動的配列を内部的に実装します。 LinkedListは、二重リンクリストを内部的に実装します。 ArrayListは内部で動的配列を実装しているため、多くのビットシフトが必要になるため、要素の追加/削除は遅くなります。 LinkedListは、ビットシフトが必要ないため、要素の追加/削除に関する限り高速です。 ArrayListには実際のデータのみが格納されるため、メモリのオーバーヘッドが少なくなります。 LinkedListの各ノードにはデータと次のノードへのアドレスが含まれるため、メモリのオーバーヘッドが増加します。
ArrayListとLinkedList
ここで、ArrayListとLinkedListのさまざまな違いについて説明します。
配列リスト LinkedList ArrayListはListインターフェースを実装します LinkedListは、ListおよびDequeインターフェースを実装します。 ArrayListでは、データの保存とアクセスが効率的です。 LinkedListは、データの操作に優れています。 ArrayListは、動的配列を内部的に実装します。 LinkedListは、二重リンクリストを内部的に実装します。 ArrayListは内部で動的配列を実装しているため、多くのビットシフトが必要になるため、要素の追加/削除は遅くなります。 LinkedListは、ビットシフトが必要ないため、要素の追加/削除に関する限り高速です。 ArrayListには実際のデータのみが格納されるため、メモリのオーバーヘッドが少なくなります。 LinkedListの各ノードにはデータと次のノードへのアドレスが含まれるため、メモリのオーバーヘッドが増加します。
よくある質問
Q#1)JavaでArrayListを配列に変換するにはどうすればよいですか?
回答: JavaでArrayListをArrayに変換するには、ArrayList APIのtoArray()メソッドを使用して、指定されたArrayListをArrayに変換します。
Q#2) 文字列をどのように分割し、JavaのArrayListに格納しますか?
回答: 文字列はsplit()関数を使用して分割されます。このメソッドは、文字列の配列を返します。次に、Arrays.asList()メソッドを使用して、文字列配列を文字列のArrayListに変換できます。
Q#3)ArrayListのデフォルトサイズはいくつですか?
回答: リストに要素が追加されていないため、容量を指定せずに作成されたArrayListオブジェクトのサイズは0です。ただし、このArrayListのデフォルトの容量は10です。
Q#4)ArrayListの長さ()とサイズ()の違いは何ですか?
回答: ArrayListには、length()プロパティまたはメソッドがありません。 ArrayList内の要素の総数を返すsize()メソッドのみを提供します。
Q#5)ArrayListの容量とサイズの違いは何ですか?
回答: ArrayListは、容量とサイズの両方を備えています。容量は、ArrayListの合計サイズ、またはそれが保持できる要素の合計数です。サイズは、データが含まれている要素または場所の数です。
例えば、 ArrayListの容量が10で、そのサイズが5の場合、これはArrayListが最大10個の要素を保持できることを意味しますが、現在5つの場所にのみデータがあります。
結論
このチュートリアルでは、ArrayListを文字列、リスト、セットに、またはその逆に変換するなど、ArrayListに関連するいくつかの追加の概念について説明しました。また、ArrayListとVector、ArrayListとLinkedListなどの違いについても説明しました。
次のチュートリアルでは、別のコレクションを取り上げて、それを徹底的に学習します。
=> ここでJavaトレーニングチュートリアルのA〜Zを確認するには、ここをクリックしてください。
推奨読書