java list methods sort list
このチュートリアルでは、Sort List、List contains、List Add、List Remove、List Size、AddAll、RemoveAll、ReverseListなどのさまざまなJavaリストメソッドについて説明します。
リストインターフェイス全般については、前のチュートリアルですでに説明しました。リストインターフェイスには、リストの内容を操作するために使用されるさまざまなメソッドがあります。これらのメソッドを使用して、リスト内の要素を挿入/削除、並べ替え、および検索できます。
このチュートリアルでは、リストインターフェイスによって提供されるすべてのメソッドについて説明します。
=> ここでJavaトレーニングチュートリアルのA〜Zを確認するには、ここをクリックしてください。
リストを反復処理するために、リストインターフェイスはリスト反復子を使用します。このリストイテレータは、イテレータインターフェイスから拡張されています。次のチュートリアルでは、リストイテレータについて詳しく説明します。
学習内容:
Javaのリストメソッド
次の表は、Javaのリストインターフェイスによって提供されるさまざまな関数を示しています。
リスト方式 | メソッドプロトタイプ | 説明 |
---|---|---|
含まれています | ブール値には(オブジェクトo)が含まれます | 指定された要素がリストに存在するかどうかを確認し、存在する場合はtrueを返します |
サイズ | intサイズ() | リストのサイズ、つまりリスト内の要素の数またはリストの長さを返します。 |
晴れ | ボイドクリア() | リスト内のすべての要素を削除してリストをクリアします |
追加 | void add(int index、Object element) | 指定された要素を指定されたインデックスのリストに追加します |
boolean add(オブジェクトo) | リストの最後に指定された要素を追加します | |
全て追加する | boolean addAll(コレクションc) | 指定されたコレクション全体をリストの最後に追加します |
boolean addAll(int index、Collection c) | 指定されたコレクション(すべての要素)を指定されたインデックスのリストに挿入します | |
containsAll | ブールcontainsAll(コレクションc) | 指定されたコレクション(すべての要素)がリストの一部であるかどうかを確認します。 yesのtrueを返します。 |
等しい | ブール値が等しい(オブジェクトo) | 指定されたオブジェクトがリストの要素と等しいかどうかを比較します |
取得する | オブジェクト取得(intインデックス) | インデックスで指定されたリスト内の要素を返します |
ハッシュコード | int hashCode() | リストのハッシュコード値を返します。 |
indexOf` | int indexOf(オブジェクトo) | 入力要素の最初の出現を検索し、そのインデックスを返します |
isEmpty | ブールisEmpty() | リストが空かどうかを確認します |
lastIndexOf | int lastIndexOf(オブジェクトo) | リスト内の入力要素の最後の出現を検索し、そのインデックスを返します |
削除する | オブジェクトの削除(intインデックス) | 指定されたインデックスの要素を削除します |
ブール値の削除(オブジェクトo) | リスト内で最初に出現した要素を削除します | |
すべて削除する | boolean removeAll(コレクションc) | 指定されたコレクションに含まれるすべての要素をリストから削除します |
保持すべて | ブールretainAll(コレクションc) | removeAllの反対。リストの入力コレクションで指定された要素を保持します。 |
セットする | オブジェクトセット(intインデックス、オブジェクト要素) | 指定された値に設定することにより、指定されたインデックスの要素を変更します |
サブリスト | サブリストのリスト(int fromIndex、int toIndex) | fromIndex(inclusive)とtoIndex(exclusive)の間の要素のサブリストを返します。 |
ソート | ボイドソート(コンパレータc) | 指定されたコンパレータに従ってリスト要素を並べ替えて、順序付きリストを作成します |
toArray | Object () toArray() | リストの配列表現を返します |
オブジェクト() toArray(オブジェクト() a) | ランタイムタイプが指定された配列引数と同じである配列表現を返します | |
イテレータ | イテレータイテレータ() | リストのイテレータを返します |
listIterator | ListIterator listIterator() | リストのListIteratorを返します |
ListIterator listIterator(int index) | リスト内の指定されたインデックスから始まるListIteratorを返します |
次に、これらの関数とその例について説明します。
サイズ
プロトタイプ: int size()
パラメーター: NIL
戻り値: int =>リスト内の要素の数、つまりリストの長さ。
説明: size()は、要素の数またはリストのサイズを返します。簡単に言えば長さと呼ぶこともできます。
晴れ
プロトタイプ: void clear()
パラメーター: NIL
戻り値: 戻り値なし
説明: リストのすべての要素を削除して、リストをクリアします。操作がリストでサポートされていない場合、「UnSupportedException」をスローします。
以下の例は、size()メソッドとclear()メソッドを示しています。
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list //add items to list strList.add('Java'); strList.add('C++'); //print the size of list System.out.println('Size of list:' + strList.size()); //add more items to list strList.add('Ruby'); strList.add('Python'); strList.add('C#'); //print the size of list again System.out.println('Size of list after adding more elements:' + strList.size()); //clear method strList.clear(); System.out.println('List after calling clear() method:' + strList); } }
出力:
追加
プロトタイプ: void add(int index、Object element)
パラメーター: index-要素が追加される位置。
要素-追加する要素
戻り値: ボイド
説明: 指定された要素を指定されたインデックスのリストに追加します。後続の要素は右にシフトされます。
次の例外がスローされます。
IndexOutOfBoundsException: リストインデックスが範囲外です
UnsupportedOperationException: 追加操作はリストではサポートされていません。
ClassCastException: 指定された要素のクラスのため、要素をリストに追加できません。
IllegalArgumentException: 指定された要素または一部の側面が正しくありません。
追加
プロトタイプ: boolean add(オブジェクトo)
パラメーター: o =>リストに追加する要素
戻り値: true =>要素が正常に追加されました
False =>追加に失敗しました
説明: このメソッドは、指定された要素をリストの最後に追加します。
この操作により、次の例外がスローされる可能性があります。
UnsupportedOperationException: このリストでサポートされていない追加操作。
ClassCastException: クラスが原因で指定された要素を追加できません
IllegalArgumentException: 指定された要素または一部の側面が正しくありません。
Windowsでjarファイルを開く方法
全て追加する
プロトタイプ: boolean addAll(コレクションc)
パラメーター: c =>要素がリストに追加されるコレクション
戻り値: true =>メソッドの実行が成功しました
説明: addAllメソッドは、コレクションcからすべての要素を取得し、設定された順序を維持することにより、それらをリストの最後に追加します。
このメソッドは、操作の進行中にコレクションが変更された場合、不特定の動作を示します。
このメソッドは次の例外をスローします。
UnsupportedOperationException: このリストでサポートされていない追加操作。
ClassCastException: クラスが原因で、指定された要素を追加できません。
IllegalArgumentException: 指定された要素または一部の側面が正しくありません。
全て追加する
プロトタイプ: boolean addAll(int index、Collection c)
パラメーター: index =>コレクションが挿入される位置。
C =>リストに挿入されるコレクション。
戻り値: true =>コレクション要素がリストに正常に追加された場合。
説明: addAllメソッドは、指定されたコレクション内のすべての要素を、指定されたインデックスのリストに挿入します。その後、後続の要素は右にシフトされます。以前のaddAllのオーバーロードの場合と同様に、操作の進行中にコレクションが変更された場合の動作は指定されていません。
このメソッドによってスローされる例外は次のとおりです。
UnsupportedOperationException: このリストでサポートされていない追加操作。
ClassCastException: クラスが原因で、指定された要素を追加できません。
IllegalArgumentException: 指定された要素または一部の側面が正しくありません。
IndexOutOfBoundsException: インデックスが範囲外です。
以下のプログラムは、リストのaddメソッドとaddAllメソッドのデモンストレーションを示しています。
import java.util.*; public class Main { public static void main(String() args) { List strList = new ArrayList(); // Creating a list strList.add('Java'); strList.add('C++'); //print the list System.out.println('List after adding two elements:' + strList); List llist = new ArrayList(); // Create another list llist.add('Ruby'); llist.add('Python'); llist.add('C#'); // addAll method - add llist to strList strList.addAll(llist); System.out.println('List after addAll:'+ strList); } }
出力:
含まれています
プロトタイプ: boolean contains(Object o)
パラメーター: o =>リストで検索する要素。
戻り値: true =>リストに指定された要素が含まれている場合。
説明: メソッド「contains」は、指定された要素がリストに存在するかどうかをチェックし、要素が存在する場合はブール値trueを返します。それ以外の場合は、falseを返します。
containsAll
プロトタイプ: ブールcontainsAll(コレクションc)
パラメーター: c =>リストで検索するコレクション。
戻り値: true =>指定されたコレクションのすべての要素がリストに存在する場合。
説明: 「containsAll」メソッドは、指定されたコレクションに存在するすべての要素がリストに存在するかどうかをチェックします。存在する場合はtrue値を返し、存在しない場合はfalseを返します。
次のJavaプログラムは、リストの「contains」メソッドと「containsAll」メソッドの使用法を示しています。
import java.util.*; public class Main { public static void main(String() args) { //define list of strings List list = new ArrayList(); //initialize list to strings list.add('Java'); list.add('Xml'); list.add('Python'); list.add('Ruby'); list.add('JavaScript'); //contains method demo if(list.contains('C')==true) System.out.println('Given list contains string 'C''); else if(list.contains('Java')==true) System.out.println('Given list contains string 'Java' but not string 'C''); //containsAll method demo List myList = new ArrayList(); myList.add('Ruby'); myList.add('Python'); if(list.containsAll(myList)==true) System.out.println('List contains strings 'Ruby' and 'Python''); } }
出力:
指定されたリストには文字列「Java」が含まれていますが、文字列「C」は含まれていません
リストには「Ruby」と「Python」の文字列が含まれています
等しい
プロトタイプ: boolean equals(Object o)
パラメーター: o =>同等性をテストするオブジェクト。
戻り値: true =>指定されたオブジェクトがリストと等しい場合。
説明: このメソッドは、指定されたオブジェクトを等式のリストと比較するために使用されます。指定されたオブジェクトがリストの場合、メソッドはtrueを返します。両方のリストは、それらが同じサイズであり、2つのリストの対応する要素が等しく、同じ順序である場合にのみ等しいと言われます。
equalsメソッドのデモンストレーションを以下に示します。
import java.util.LinkedList; import java.util.List; public class Main { public static void main(String() args) { //define lists List first_list= new LinkedList(); List second_list = new LinkedList(); List third_list = new LinkedList(); //initialize lists with values for (int i=0;i<11;i++){ first_list.add(i); second_list.add(i); third_list.add(i*i); } //print each list System.out.println('First list: ' + first_list); System.out.println('Second list: ' + second_list); System.out.println('Third list: ' + third_list); //use equals method to check equality with each list to other if (first_list.equals(second_list) == true) System.out.println('
first_list and second_list are equal.
'); else System.out.println('first_list and second_list are not equal.
'); if(first_list.equals(third_list)) System.out.println('first_list and third_list are equal.
'); else System.out.println('first_list and third_list are not equal.
'); if(second_list.equals(third_list)) System.out.println('second_list and third_list are equal.
'); else System.out.println('second_list and third_list are not equal.
'); } }
出力:
取得する
プロトタイプ: オブジェクトget(int index)
パラメーター: index =>要素が返される位置。
戻り値: object =>指定された位置の要素。
説明: get()メソッドは、指定された位置にある要素を返します。
指定されたインデックスがリストの範囲外の場合、このメソッドは「indexOutOfBoundsException」をスローします。
セットする
プロトタイプ: オブジェクトセット(intインデックス、オブジェクト要素)
パラメーター: index =>新しい要素が設定される位置。
element =>インデックスで指定された位置に配置される新しい要素。
戻り値: Object =>置き換えられた要素
説明: メソッドset()は、指定されたインデックスの要素を、elementによって指定された別の値に置き換えます。
このメソッドは、次の例外をスローする場合があります。
UnsupportedOperationException: 集合演算はリストではサポートされていません。
ClassCastException: 要素のクラスが原因で操作を実行できません
IllegalArgumentException: 議論またはその一部は違法です
IndexOutOfBoundsException: インデックスが範囲外です。
次のプログラムは、get()メソッドとset()メソッドの例を示しています。
import java.util.*; public class Main { public static void main(String() args) { //define list List listA = new ArrayList(); listA.add('Java'); listA.add('C++'); listA.add('Python'); //access list elements using index with get () method System.out.println('Element at index 0:' + listA.get(0)); System.out.println('Element at index 1:' + listA.get(1)); System.out.println('Element at index 2:' + listA.get(2)); //set element at index 1 to Ruby listA.set(1,'Ruby'); System.out.println('Element at index 1 changed to :' + listA.get(1) ); } }
出力:
ハッシュコード
プロトタイプ: int hashCode()
パラメーター: NIL
戻り値: int =>リストのhashCode
説明: メソッド「hashCode()」は、整数値であるリストのhashCodeを返します。
例:
import java.util.*; public class Main { public static void main(String() args) { // Initializing a list of type Linkedlist List mylist = new LinkedList(); mylist.add(1); mylist.add(3); mylist.add(5); mylist.add(7); //print the list System.out.println('The list:' + mylist); //use hashCode() method to find hashcode of list int hash = mylist.hashCode(); System.out.println('Hashcode for list:' + hash); } }
出力:
isEmpty
プロトタイプ: ブールisEmpty()
パラメーター: NIL
戻り値: true =>リストが空です
説明: 「isEmpty()」メソッドは、リストが空かどうかを確認します。 IsEmptyメソッドは、それらの要素の処理を開始する前に、リストに要素が含まれているかどうかを確認するために使用されます。
の指標
プロトタイプ: int indexOf(Object o)
パラメーター: o =>リストで検索する要素
戻り値: int =>リスト内の指定された要素の最初の出現のインデックスまたは位置。要素が存在しない場合は-1を返します。
説明: メソッド「indexOf()」は、リスト内で指定された要素oが最初に出現するインデックスを返します。要素が見つからない場合は、-1を返します。
lastIndexOf
プロトタイプ: int lastIndexOf(Object o)
パラメーター: o =>インデックスが検索されるオブジェクト
戻り値: int =>リスト内の指定された要素の最後の出現のインデックス。それ以外の場合は-1。
説明: メソッド「lastIndexOf()」は、リスト内で最後に出現した要素oのインデックスを返します。要素が見つからない場合、メソッドは-1を返します。
以下のJavaプログラムは、リストのindexOfメソッドとlastIndexOfメソッドの使用法を示しています。
import java.util.*; public class Main { public static void main(String() args) { // define an integer array List intList = new ArrayList(5); //add elements to the list intList.add(10); intList.add(20); intList.add(30); intList.add(10); intList.add(20); //print the list System.out.println('The list of integers:' + intList); // Use indexOf() and lastIndexOf() methods of list to find first and last index System.out.println('first index of 20:' + intList.indexOf(20)); System.out.println('last index of 10:' + intList.lastIndexOf(10)); } }
出力:
削除する
プロトタイプ: オブジェクトの削除(intインデックス)
パラメーター: index =>要素が削除されるリスト内のインデックスまたは位置
戻り値: オブジェクト=>要素が削除されました
説明: 「remove()」メソッドは、指定された位置にある要素をリストから削除します。削除後、削除された要素の隣の要素は左にシフトされます。
このメソッドは、次の例外をスローする可能性があります。
UnsupportedOperationException: 削除はリストではサポートされていません。
IndexOutOfBoundsException: 指定されたインデックスが範囲外です
削除する
プロトタイプ: boolean remove(Object o)
パラメーター: o =>リストから削除する要素
戻り値: true =>要素は正常に削除されました。
説明: このオーバーロードされたバージョンのremove()メソッドは、指定された要素oの最初の出現をリストから削除します。指定された要素がリストに存在しない場合、変更されません。
このメソッドは、次の例外をスローする可能性があります。
UnsupportedOperationException: 削除はリストではサポートされていません。
informaticapowercenterインタビューの質問と回答
すべて削除する
プロトタイプ: boolean removeAll(Collection c)
パラメーター: c =>リストから削除された要素を含むコレクション。
戻り値: true =>メソッド呼び出しが成功し、コレクションcで指定されたすべての要素がリストから削除された場合。
説明: 「removeAll()」メソッドは、引数として渡されるコレクションcで指定されているリストからすべての要素を削除するために使用されます。
このメソッドは、次の例外をスローする可能性があります。
UnsupportedOperationException: removeAllはリストではサポートされていません。
removeメソッドとremoveAllメソッドの例を見てみましょう。
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); // Removes element from index 1 oddList.remove(1); System.out.println('Oddlist after removing element at index 1:' + oddList); //removeAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.removeAll(c1); System.out.println('Oddlist after removing elements {1,5,11}}:' + oddList); } }
出力:
保持すべて
プロトタイプ: ブールretainAll(コレクションc)
パラメーター: c =>リストに保持する必要のある要素を含むコレクション。
戻り値: true =>メソッド呼び出しがリストを変更した場合。
説明: このメソッドは、コレクションcに存在する要素を除いて、リストからすべての要素を削除します。つまり、このメソッドは、コレクションcに存在するリスト内のすべての要素を保持し、他の要素を削除します。
このメソッドは、次の例外をスローする可能性があります。
UnsupportedOperationException: holdAllはリストではサポートされていません。
import java.util.*; public class Main { public static void main(String() args) { // Creating a list List oddList = new ArrayList(); //add elements to the list oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); oddList.add(11); //print the original list System.out.println('Original List:' + oddList); //retainAll method List c1 = new ArrayList(); c1.add(1); c1.add(5); c1.add(11); oddList.retainAll(c1); System.out.println('Oddlist after call to retainAll (1,5,11):' + oddList); } }
出力:
サブリスト
プロトタイプ: サブリストのリスト(int fromIndex、int toIndex)
パラメーター: fromIndex =>リストの下位インデックス(両端を含む)
toIndex =>リストの上位インデックス(排他的)
戻り値: リスト=>指定されたリストのサブリスト
説明: メソッドsublist()は、「fromIndex」から「toIndex」へのサブリストとも呼ばれるリストの部分ビューを返します。返されるサブリストは親リストの単なるビューであるため、いずれかのリストに加えられた変更はすべての場所に反映されます。
同様に、リストのすべての操作はサブリストでも機能します。
このメソッドは、次の例外をスローする可能性があります。
IndexOutOfBoundsException: toIndex値が無効です。
サブリストメソッドのサンプルプログラムを以下に示します。
import java.util.*; public class Main { public static void main(String() args) { // define a string list List strList = new ArrayList(5); //add elements to the list strList.add('Java'); strList.add('Tutorials'); strList.add('Collection'); strList.add('Framework'); strList.add('Series'); //print the original list System.out.println('The original list=>strList: ' + strList); //define another list List subList = new ArrayList(); // take a sublist of elements from 2 to 4 from strList subList = strList.subList(2, 4); //print the sublist System.out.println('The sublist of strList:' + subList); } }
出力:
ソートリスト
プロトタイプ: ボイドソート(コンパレータc)
パラメーター: c =>リストのソートに基づくコンパレータ。
戻り値: NIL
説明: 「sort()」メソッドは、リストを並べ替えるために使用されます。このメソッドは、指定されたコンパレータを使用してリストをソートします。
sortメソッドの例を見てみましょう 。これを、要素を自然な順序で並べ替えるCollections.sortメソッドと比較しました。プログラムの出力は順序付きリストです。
import java.util.Collections; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Main { public static void main(String() args) { //define list List intArray = new ArrayList(); Random random = new Random(); //populate the list with random numbers <20 for (int i = 0; i {return (o2-o1);}); //comparator to sort in reverse System.out.println('Reverse List sorted using comparator:
'+intArray); } }
出力:
toArray
プロトタイプ: オブジェクト() toArray()
パラメーター: NIL
戻り値: オブジェクト() =>リストの配列表現
説明: メソッドtoArray()は、リストの配列表現を適切な順序で返します。
toArray
プロトタイプ: Object () toArray(Object () a)
パラメーター: a =>リストを配列に変換するときにリスト要素タイプと照合される配列タイプ。
戻り値: Object () =>リストの配列表現。
説明: このメソッドtoArray()のオーバーロードは、配列aと同じランタイムタイプを持つリスト内の要素を含む配列を返します。
このメソッドは、次の例外をスローする可能性があります。
ArrayStoreException: リスト内のすべての要素のランタイムタイプは、このリスト内のすべての要素のランタイムタイプのサブタイプではありません。
以下は、toArrayメソッドの実装例です。
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('Size of the colorsList: ' + colorsList.size()); // Print the colors in the list System.out.println('Contents of colorsList:'); for (String value : colorsList){ System.out.print(value + ' '); } // Create an array from the list using toArray method String colorsArray() = new String(colorsList.size()); colorsArray = colorsList.toArray(colorsArray); // Display the contents of the array System.out.println('
Printing elements of colorsArray:' + Arrays.toString(colorsArray)); } }
出力:
イテレータ
プロトタイプ: イテレータイテレータ()
パラメーター: NIL
戻り値: Iterator =>リストの要素を反復処理するイテレータ
説明: このメソッドは、リスト内の要素を反復処理するイテレーターを返します。
イテレータの使用を示すJavaプログラム。
import java.util.*; public class Main { public static void main(String() args) { // create list ArrayList colorsList = new ArrayList(7); // add colors to colorsList colorsList.add('Violet'); colorsList.add('Indigo'); colorsList.add('Blue'); colorsList.add('Green'); colorsList.add('Yellow'); colorsList.add('Orange'); colorsList.add('Red'); System.out.println('ColorList using iterator:'); //define iterator for colorsList Iterator iterator = colorsList.iterator(); //iterate through colorsList using iterator and print each item while(iterator.hasNext()){ System.out.print(iterator.next() + ' '); } } }
出力:
listIterator
プロトタイプ: ListIterator listIterator()
パラメーター: NIL
戻り値: ListIterator =>リスト内の要素のListiterator。
説明: メソッドlistIterator()は、リスト内の要素のListIteratorオブジェクトを返します。このイテレータは、リストの先頭、つまりインデックス0から始まります。
listIterator
プロトタイプ: ListIterator listIterator(int index)
パラメーター: index => listIteratorが開始する位置。
戻り値: ListIterator =>リスト内の指定されたインデックスにあるListIteratorオブジェクト。
説明: メソッドlistIterator()のオーバーロードは、リスト内の指定された位置から始まるlistIteratorを返します。指定されたインデックスは、ListIteratorのnextElement()メソッドへの最初の呼び出しによって返される最初の要素であることを示しています。
メソッドは、インデックスの無効な値に対してIndexOutOfBoundsExceptionをスローする場合があります。
次の例は、listIteratorの使用法を示しています。
import java.util.*; public class Main { public static void main(String() args) { //define list & add items to list List nameList = new LinkedList(); nameList.add('Java'); nameList.add('C++'); nameList.add('Python'); // get listIterator for the list ListIterator namesIterator = nameList.listIterator(); // Traverse list using listiterator and print each item System.out.println('Contents of list using listIterator:'); while(namesIterator.hasNext()){ System.out.print(namesIterator.next() + ' '); } } }
出力:
ListIteratorについては後で詳しく説明します。
ここで、リストで実行できるその他の操作のいくつかについて説明しますが、そのメソッドはリストインターフェイスで提供されていません。
Javaでリストをコピーする
あるリストの要素を別のリストにコピーするには、Collectionsフレームワークが提供するcopy()メソッドを使用する必要があります。
メソッドCollections.copy()は、2番目の引数として提供されたリストのすべての要素を、最初の引数として提供されたリストにコピーします。別のリストの内容がコピーされるリストは、コピーされた要素を収容するのに十分な大きさである必要があることに注意してください。
リストが十分に大きくない場合、copyメソッドは「indexOutOfBoundsEexception」をスローします。
次のプログラムは、あるリストの内容を別のリストにコピーします。
import java.util.*; public class Main { public static void main(String() args) { //create first ArrayList object List aList_1 = new ArrayList(); //Add elements to first ArrayList aList_1.add('R'); aList_1.add('G'); aList_1.add('B'); //print the List System.out.println('The first list:' + aList_1); //create second ArrayList object List aList_2 = new ArrayList(); //Add elements to second Arraylist aList_2.add('Red'); aList_2.add('Green'); aList_2.add('Blue'); aList_2.add('Yellow'); aList_2.add('Brown'); System.out.println('The second list: ' + aList_2); //use Collections.copy() method to copy elements of first list to second list. Collections.copy(aList_2,aList_1); //print the resultant second Arraylist System.out.println('
The second list after copying first list to second list: ' + aList_2); } }
出力:
Javaのリストから重複を削除する
特定のリストには、反復要素または重複がある場合とない場合があります。使用しているリストに重複する要素があり、リスト内のすべての個別の要素が必要な場合、Javaでサポートされているリストから重複を削除する方法は2つあります。
Java8ストリームの使用
リストから重複を削除する最初の方法は、Java 8ストリームによって提供されるdistinct()メソッドを使用することです。ここで、重複を含むリストはstream()。distinctメソッドを呼び出し、戻り値は個別の要素のみを持つ新しいリストに変換されます。
次のプログラムは、distinct()メソッドの使用法を示しています。
import java.util.*; import java.util.stream.Collectors; class Main { public static void main(String() args) { // original list List intlist = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5,6,5,3,4)); // Print the list System.out.println('Original ArrayList: ' + intlist); // using distinct() method of Java 8 stream remove duplicates from original List //and generate a new list without duplicates List distinct_list = intlist.stream().distinct() .collect(Collectors.toList()); // Print the new list System.out.println('ArrayList after removing duplicates: ' + distinct_list); } }
出力:
イテレータアプローチの使用
イテレータを使用してリストから重複を削除することは、時間のかかる原始的なアプローチです。このアプローチでは、リストをトラバースして、すべての要素の最初の出現を新しいリストに配置する必要があります。後続のすべての要素が重複しているかどうかがチェックされます。
以下のプログラムはこれを実現します。
import java.util.*; public class Main { public static void main(String args()) { // create original list ArrayList aList = new ArrayList( Arrays.asList(1, 1, 1, 2, 2, 3, 3, 3, 4, 5, 5, 6, 5, 3, 4)); // Print the original list System.out.println('Original List: '+ aList); // Create a new list ArrayList new_List = new ArrayList(); // Traverse through the original list to remove duplicates for (Integer element : aList) { // check if element is present in new_List, else add it if (!new_List.contains(element)) { new_List.add(element); } } // Print the new list without duplicates System.out.println('List after removing duplicates: '+ new_List); } }
出力:
よくある質問
Q#1)Javaのリストにあるgetメソッドとは何ですか?
回答: リストのGetメソッドは、インデックスに基づいてリスト内の特定の要素を取得するために使用されます。必要なインデックスをgetメソッドに渡すと、getメソッドはそのインデックスの要素値を返します。
Q#2)JavaのtoArrayメソッドとは何ですか?
回答: メソッドtoArray()は、リストの配列表現を取得するために使用されます。
Q#3)Javaでリストをどのようにソートしますか?
回答: Javaでは、リストはリストのsortメソッドを使用してソートできます。 sortメソッドにパラメーターとして渡されるコンパレーター・インターフェースを使用して、独自のソート基準を渡すことができます。
コレクションを使用することもできます。リストをソートするためのSortメソッド。このメソッドは、自然な順序に従ってリストをソートします。
Q#4)JavaのArrays.asList()とは何ですか?
回答: 配列のメソッド「asList」は、配列に基づく要素のリストを返します。
携帯電話のための最高のスパイプログラム
結論
このチュートリアルでは、リストが提供するすべての方法を学習しました。 Javaリストには、検索、ソートなど、リストを操作および処理できるさまざまなメソッドが用意されています。ここでは、適切なプログラミング例を使用して各メソッドについて説明しました。
今後のチュートリアルでは、ListIteratorについて詳しく説明します。
=> ここでシンプルなJavaトレーニングシリーズをご覧ください。