arraylist methods java tutorial with example programs
このチュートリアルでは、add、addAll、remove、removeAll、size、contains、retainAll、Sort、ReverseなどのJavaArrayListメソッドについて例を挙げて説明します。
前のチュートリアルでは、ArrayListデータ構造と、Javaでこのデータ構造/コレクションに提供されるArrayListクラスについて説明しました。 ArrayListオブジェクトの作成、初期化などを学びました。
ArrayListの定義に役立つこれらの機能とは別に、JavaのArrayListクラスは、ArrayListオブジェクトを操作するために使用されるメソッドで構成される本格的な関数APIも提供します。
=> ここですべてのJavaチュートリアルを確認してください。
これらのメソッドを使用すると、ArrayList内の要素を追加、削除、検索したり、ArrayList要素の長さ/サイズを取得したりできます。
このチュートリアルでは、簡単なプログラミング例を使用して、これらの方法について詳しく説明します。
学習内容:
- JavaのArrayListメソッド
- ArrayList add
- ArrayList addAll
- ArrayListを前面に追加
- ArrayList削除
- ArrayList removeAll
- ArrayList removeRange
- ArrayListのサイズ(長さ)
- ArrayListには
- ArrayList get
- ArrayListセット(要素の置換)
- ArrayListクリア
- ArrayList isEmpty
- ArrayList indexOf
- ArrayList lastIndexOf
- ArrayList toArray
- ArrayListクローン
- ArrayListサブリスト
- ArrayListretainAll
- ArrayListイテレータ
- ArrayList listIterator
- JavaでArrayListに配列を追加する
- JavaでArrayListを並べ替える
- JavaでArrayListを逆にする
- JavaのArrayListから重複を削除する
- JavaでArrayListをシャッフル(ランダム化)
- よくある質問
- 結論
JavaのArrayListメソッド
次の表に、ArrayListクラスによって提供されるすべてのメソッドを示します。
方法 | メソッドプロトタイプ | メソッドの説明 |
---|---|---|
含まれています | boolean contains(Object o) | リストに指定された要素「o」が含まれているかどうかを確認します。要素が存在する場合はtrueを返します。 |
追加 | boolean add(E e) | 指定された要素eをリストの最後に追加します。 |
void add(int index、E element) | 指定された要素「element」を指定された位置「index」に追加します。 | |
全て追加する | boolean addAll(コレクションc) | 指定されたコレクションcのすべての要素をリストの最後に追加します。 |
boolean addAll(int index、Collection c) | 指定されたコレクションcのすべての要素を、リストの「インデックス」で指定された位置に追加します。 | |
晴れ | void clear() | リストからすべての要素を削除して、リストをクリアします。 |
クローン | オブジェクトclone() | 指定されたArrayListのシャローコピーを作成します。 |
sureCapacity | void sureCapacity(int minCapacity) | ArrayListの容量を増やして、minCapacityを確保します。 |
取得する | E get(int index) | 「index」で指定された位置にあるリスト内の要素を返します。 |
の指標 | int indexOf(Object o) | リスト内で最初に出現する要素oのインデックスを返します。 -要素oがリストに存在しない場合は-1。 |
isEmpty | ブールisEmpty() | 指定されたリストが空かどうかを確認します。 |
イテレータ | イテレータiterator() | 適切な順序でリスト要素をトラバースするイテレータを返します。 |
lastIndexOf | int lastIndexOf(Object o) | リスト内で指定された要素oが最後に出現したインデックスを返します。要素がリストに存在しない場合は-1。 |
listIterator | ListIterator listIterator() | 指定されたリストの要素をトラバースするリストイテレータを返します。 |
ListIterator listIterator(int index) | 指定されたリストの要素をトラバースするために、指定された位置「インデックス」から始まるリストイテレータを返します。 | |
削除する | E remove(int index) | ArrayListの「インデックス」にある要素を削除します。 |
boolean remove(Object o) | 要素oの最初の出現をリストから削除します。 | |
すべて削除する | boolean removeAll(Collection c) | 指定されたコレクションの要素に一致するすべての要素をリストから削除しますc。 |
removeRange | protected void removeRange(int fromIndex、int toIndex) | 指定された範囲(fromIndex(包括的)からtoIndex(排他的))で指定された要素をリストから削除します。 |
保持すべて | ブールretainAll(コレクションc) | 指定されたコレクションの要素に一致するリスト内の要素を保持しますc。 |
セットする | E set(int index、E element) | 指定された「index」の要素値を「element」で指定された新しい値に設定します。 |
サイズ | int size() | 要素の総数またはリストの長さを返します。 |
サブリスト | リストsubList(int fromIndex、int toIndex) | 指定されたリストのインデックスからtoIndexまでの指定された範囲の間のサブリストを返します。 |
toArray | Object () toArray() | 指定されたリストを配列に変換します。 |
T () toArray(T () a) | 指定されたリストを、で指定されたタイプの配列に変換します。 | |
trimToSize | void trimToSize() | ArrayListの容量を、リストに存在する要素のサイズまたは数にトリミングします。 |
次に、ArrayList関数APIのこれらの各メソッドについて詳しく説明し、プログラミング例を示します。上記のすべてのメソッドについて説明した後、ArrayList関数APIの一部ではないArrayListsを使用して実行される特定の操作についても説明します。
ArrayList add
私
プロトタイプ: ブール加算(E e)
パラメーター: e => ArrayListに追加される要素。
戻り値: true =>要素が正常に追加されました。
説明: 指定された要素eをリストの最後に追加します。
II。
プロトタイプ: void add(int index、E element)
パラメーター:
index =>要素が追加される位置。
Element => ArrayListに追加される要素。
戻り値: ボイド
説明: 指定された要素「element」を指定された位置「index」に追加します。その位置の要素と後続の要素を右にシフトします。
例外: IndexOutOfBoundsException =>指定されたインデックスが範囲外の場合。
ArrayList addAll
私
プロトタイプ: boolean addAll(コレクションc)
パラメーター: c =>要素がArrayListに追加されるコレクション。
戻り値: true =>操作によってArrayListが変更された場合。
説明: 指定されたコレクションcのすべての要素をリストの最後に追加します。操作の進行中にコレクションが変更された場合、操作の結果は未定義です。
例外: NullPointerException =>指定されたコレクションcがnullの場合。
yl
プロトタイプ: boolean addAll(int index、Collection c)
パラメーター: index =>指定されたコレクション内の要素が追加される位置。
戻り値: true =>操作の結果としてリストが変更された場合。
説明: 指定されたコレクションcのすべての要素を、リストの「インデックス」で指定された位置に追加します。指定されたインデックスの要素と後続の要素が右にシフトされます。操作の進行中に追加されるコレクションが変更された場合、操作の結果は未定義です。
例外: IndexOutOfBoundsException:コレクションが追加されるインデックスが範囲外の場合
NullPointerException:指定されたコレクションcがnullの場合。
次のJavaプログラムは、addメソッドとaddAllメソッドの使用法を示しています。
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print the list System.out.println('Initial ArrayList:' + city_List); //add an element at index 1 using add method overload city_List.add(1, 'NYC'); //print the list System.out.println('
rrayList after adding element at index 1:' + city_List); //define a second list ArrayList more_Cities = new ArrayList(Arrays.asList('Pune', 'Hyderabad')); //use addAll method to add the list to ArrayList at index 4 city_List.addAll(4,more_Cities); //print the list System.out.println('
ArrayList after adding list at index 4:' + city_List); } }
出力:
初期ArrayList:(デリー、ムンバイ、チェンナイ、コルカタ)
インデックス1に要素を追加した後のrrayList:(デリー、NYC、ムンバイ、チェンナイ、コルカタ)
インデックス4にリストを追加した後のArrayList:(デリー、NYC、ムンバイ、チェンナイ、プネ、ハイデラバード、コルカタ)
上記のプログラムは、両方のバージョンのaddメソッドを使用して、リストに要素を追加します。また、指定されたインデックスでリストにコレクションを追加します。プログラムの出力から明らかなように、要素がArrayListの右側にシフトしていることに注意してください。
ArrayListを前面に追加
すでに述べたように、addメソッドの最初のバージョンは、リストの最後に要素を追加します。 ArrayListの先頭に要素を追加する場合は、addメソッドの2番目のバージョンを使用する必要があります。このaddメソッドは、パラメーターとしてインデックスを取ります。このインデックスは、要素が追加される位置です。
したがって、リストの先頭に要素を追加するには、リストの先頭である0としてインデックスを指定する必要があります。
次のプログラムは、ArrayListの前に要素を追加します。
import java.util.ArrayList; public class Main { public static void main(String() args) { //define new ArrayList and initialize it ArrayList numList = new ArrayList(); numList.add(5); numList.add(7); numList.add(9); //print the ArrayList System.out.println('Initial ArrayList:'); System.out.println(numList); //use add method with index=0 to add elements to the beginning of the list numList.add(0, 3); numList.add(0, 1); System.out.println('ArrayList after adding elements at the beginning:'); //print ArrayList System.out.println(numList); } }
出力:
初期ArrayList:
(5、7、9)
最初に要素を追加した後のArrayList:
(1、3、5、7、9)
ArrayList削除
私。
プロトタイプ: E削除(intインデックス)
パラメーター: index =>要素がArrayListから削除される位置。
戻り値: E =>削除される要素
説明: ArrayListの「インデックス」にある要素を削除し、後続の要素を左に移動します。
例外: IndexOutOfBoundsException =>指定されたインデックスが範囲外です。
II。
プロトタイプ: ブール値の削除(オブジェクトo)
パラメーター: o => ArrayListから削除される要素。
戻り値: true =>要素がリストに存在する場合。
説明: 要素oの最初の出現をリストから削除します。要素がリストに存在しない場合、この操作の効果はありません。要素が削除されると、後続の要素は左にシフトされます。
ArrayList removeAll
プロトタイプ: boolean removeAll(コレクションc)
パラメーター: c =>要素がArrayListの要素と一致し、削除されるコレクション。
戻り値: true => ArrayListが操作によって変更された場合。
説明: 指定されたコレクション内の要素に一致するすべての要素をリストから削除しますc。その結果、残りの要素はリストの左側に移動します。
例外: ClassCastException =>クラスが指定されたコレクションのクラスと同じではないため、クラスに互換性がありません。
NullPointerException =>指定されたコレクションcがnullの場合。または、cにnull要素があり、コレクションで許可されていない場合。
ArrayList removeRange
プロトタイプ: protected void removeRange(int fromIndex、int toIndex)
パラメーター: fromIndex =>削除する範囲の開始要素のインデックス。
toIndex =>削除する範囲の最後の要素の後の要素のインデックス。
戻り値: ボイド
説明: 指定された範囲(fromIndex(包括的)からtoIndex(排他的))で指定された要素をリストから削除します。この操作により、リストの長さが(toIndex-fromIndex)だけ短縮されます。 fromIndex = toIndexの場合、この操作は効果がありません。
例外: IndexOutOfBoundsException =>インデックス(fromIndexまたはtoIndex)のいずれかが範囲外の場合。
上で説明したこれらのremoveメソッドのいくつかを示すためにJavaプログラムを実装しましょう。
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(Arrays.asList('Delhi','Mumbai','Chennai', 'Kolkata', 'Pune', 'Hyderabad')); //print the list System.out.println('Initial ArrayList:' + city_List); //remove element at index 2 city_List.remove(2); //print the list System.out.println('
ArrayList after removing element at index 2:' + city_List); //remove the element 'Kolkata' city_List.remove('Kolkata'); //print the list System.out.println('
ArrayList after removing element -> Kolkata:' + city_List); //create new list ArrayList newCities=new ArrayList(Arrays.asList('Delhi','Hyderabad')); //call removeAll to remove elements contained in newCities list. city_List.removeAll(newCities); //print the list System.out.println('
ArrayList after call to removeAll:' + city_List); } }
出力:
初期ArrayList:(デリー、ムンバイ、チェンナイ、コルカタ、プネ、ハイデラバード
インデックス2の要素を削除した後のArrayList:(デリー、ムンバイ、コルカタ、プネ、ハイデラバード)
要素を削除した後のArrayList-> Kolkata:(Delhi、Mumbai、Pune、Hyderabad)
removeAll:(Mumbai、Pune)の呼び出し後のArrayList
ArrayListのサイズ(長さ)
プロトタイプ: intサイズ()
パラメーター: NIL
戻り値: int => ArrayList内の要素の数。
説明: 要素の総数またはArrayListの長さを返します。
容量の確保
プロトタイプ: void sureCapacity(int minCapacity)
パラメーター: minCapacity => ArrayListに必要な最小容量。
戻り値: ボイド
説明: ArrayListの容量を増やして、minCapacityを確保します。
trimToSize
プロトタイプ: void trimToSize()
パラメーター: NIL
戻り値: ボイド
説明: ArrayListの容量を、リストに存在する要素のサイズまたは数にトリミングします。
以下のプログラミング例は、メソッドsize()、ensureCapacity()、trimToSize()を示しています。
import java.util.ArrayList; public class Main { public static void main(String () args) { //Create and initialize Arraylist ArrayList evenList=new ArrayList(5); System.out.println('Initial size: '+evenList.size()); evenList.add(2); evenList.add(4); evenList.add(6); evenList.add(8); evenList.add(10); //print the list and size System.out.println('Original List: ' + evenList); System.out.println('ArrayList Size after add operation: '+evenList.size()); //call ensureCapacity () with minimum capacity =10 evenList.ensureCapacity(10); //add two more elements evenList.add(12); evenList.add(14); //print the size again System.out.println('ArrayList Size after ensureCapacity() call and add operation: '+evenList.size()); //call trimToSize() evenList.trimToSize(); //print the size and the ArrayList System.out.println('ArrayList Size after trimToSize() operation: '+evenList.size()); System.out.println('ArrayList final: '); for(int num: evenList){ System.out.print(num + ' '); } } }
出力:
初期サイズ:0
元のリスト:(2、4、6、8、10)
追加操作後のArrayListサイズ:5
sureCapacity()呼び出しおよび追加操作後のArrayListサイズ:7
trimToSize()操作後のArrayListサイズ:7
ArrayList最終:
2 4 6 8 10 12 14
Windowsでswfファイルを再生する方法
ArrayListには
プロトタイプ: ブール値には(オブジェクトo)が含まれます
パラメーター: o => ArrayListに存在する場合にチェックされる要素。
戻り値: true => ArrayListに要素oが含まれている場合。
説明: リストに指定された要素「o」が含まれているかどうかを確認します。要素が存在する場合はtrueを返します。
次のプログラムでは、「contains」メソッドを使用します。
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call contains method to check if different strings are present in ArrayList System.out.println('ArrayList contains ('Red Green'): ' +colorsList.contains('Red Green')); System.out.println('ArrayList contains ('Blue'): ' +colorsList.contains('Blue')); System.out.println('ArrayList contains ('Yellow'): ' +colorsList.contains('Yellow')); System.out.println('ArrayList contains ('White'): ' +colorsList.contains('White')); } }
出力:
ArrayListに含まれるもの(「赤緑」):false
ArrayListに含まれるもの(「青」):true
ArrayListに含まれるもの(「黄色」):false
ArrayListに含まれるもの(「白」):true
上記の出力に示されているように、「contains」メソッドは、指定された引数がArrayListに存在するかどうかを確認し、trueまたはfalseを返します。
ArrayList get
プロトタイプ: E get(int index)
パラメーター: index => ArrayListから要素を取得するインデックス。
戻り値: E => ArrayList内の指定されたインデックスの要素値。
説明: 「index」で指定された位置にあるリスト内の要素を返します。
例外: IndexOutOfBoundsException =>インデックスが範囲外の場合。
ArrayListセット(要素の置換)
プロトタイプ: Eセット(intインデックス、E要素)
パラメーター: index =>要素が置き換えられるインデックス。
Element =>指定されたインデックスに設定される新しい要素。
戻り値: E =>集合演算によって置き換えられる要素。
説明: 指定された「インデックス」の要素値を「要素」で指定された新しい値に設定します。
例外: IndexOutOfBoundsException =>インデックスが範囲外の場合
以下のJavaプログラムは、get()メソッドとset()メソッドを使用して、ArrayListの値を取得および置換します。
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //call get () method to retrieve value at index 2 System.out.println('Entry at index 2 before call to set: ' + colorsList.get(2)); //replace the value at index 2 with new value colorsList.set(2,'Yellow'); //print the value at index 2 again System.out.println('Entry at index 2 after call to set: ' + colorsList.get(2)); } }
出力:
セットを呼び出す前のインデックス2のエントリ:青
セットの呼び出し後のインデックス2のエントリ:黄色
ArrayListクリア
プロトタイプ: ボイドクリア()
パラメーター: NIL
戻り値: ボイド
説明: リストからすべての要素を削除して、リストをクリアします。
ArrayList isEmpty
プロトタイプ: ブールisEmpty()
パラメーター: NIL
戻り値: true =>リストが空の場合
説明: 指定されたリストが空かどうかを確認します。
Clear()関数とisEmpty()関数を以下に示します。
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize colorsList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('White'); //print the ArrayList System.out.println('The ArrayList: ' + colorsList); //call clear() nethod on ArrayList colorsList.clear(); //check if ArrayList is empty using isEmpty() method System.out.println('Is ArrayList empty after clear ()? :' + colorsList.isEmpty()); } }
出力:
ArrayList:(赤、緑、青、白)
クリア()後にArrayListは空ですか? :true
ArrayList indexOf
プロトタイプ: int indexOf(オブジェクトo)
パラメーター: o => ArrayListでインデックスが見つかる要素。
戻り値: int =>リスト内の要素の最初の出現のインデックス。
説明: リスト内で最初に出現する要素oのインデックスを返します。 -要素oがリストに存在しない場合は-1。
ArrayList lastIndexOf
プロトタイプ: int lastIndexOf(オブジェクトo)
パラメーター: o =>検索する要素。
戻り値: int =>リスト内の要素の最後の出現のインデックス。
説明: リスト内で指定された要素oが最後に出現したインデックスを返します。要素がリストに存在しない場合は-1。
以下のJavaプログラムは、ArrayListのindexOfメソッドとlastIndexOfメソッドを示しています。
import java.util.ArrayList; public class Main { public static void main(String() args) { //create and initialize intList ArrayList intList = new ArrayList(); intList.add(1); intList.add(1); intList.add(2); intList.add(3); intList.add(5); intList.add(3); intList.add(2); intList.add(1); intList.add(1); //print the ArrayList System.out.println('The ArrayList: ' + intList); //call indexOf() and lastIndexOf() methods to check the indices of specified elements System.out.println('indexOf(1) : ' + intList.indexOf(1)); System.out.println('lastIndexOf(1) : ' + intList.lastIndexOf(1)); System.out.println('indexOf(2) : ' + intList.indexOf(2)); System.out.println('lastIndexOf(2) : ' + intList.lastIndexOf(2)); System.out.println('indexOf(3) : ' + intList.indexOf(3)); System.out.println('lastIndexOf(3) : ' + intList.lastIndexOf(3)); System.out.println('indexOf(5) : ' + intList.indexOf(5)); System.out.println('lastIndexOf(5) : ' + intList.lastIndexOf(5)); } }
出力:
ArrayList:(1、1、2、3、5、3、2、1、1)
indexOf(1):0
lastIndexOf(1):8
indexOf(2):2
lastIndexOf(2):6
indexOf(3):3
lastIndexOf(3):5
indexOf(5):4
lastIndexOf(5):4
ArrayList toArray
プロトタイプ: オブジェクト() toArray()
パラメーター: NIL
戻り値: オブジェクト() =>配列。この返される配列には、リストのすべての要素が適切な順序で含まれています。
説明: 指定されたリストを配列に変換します。
プロトタイプ: T () toArray(T () a)
パラメーター: a =>リストの要素を格納する配列。配列のサイズがリスト要素に対して十分でない場合、要素を格納するために、と同じタイプの別の配列が作成されます。
戻り値: T () =>すべてのリスト要素を含む配列。
説明: 指定されたリストを、で指定されたタイプの配列に変換します。
例外: ArrayStoreException =>配列のランタイムタイプとその要素のランタイムタイプまたはスーパータイプに不一致がある場合。
NullPointerException =>指定された配列はnullです
以下のJavaプログラムは、ArrayListのtoArrayメソッドを示しています。
import java.util.*; public class Main { public static void main(String() args) { // define and initialize ArrayList ArrayList intList = new ArrayList(); intList.add(10); intList.add(20); intList.add(30); intList.add(40); intList.add(50); // print ArrayList System.out.println('ArrayList: ' + intList); //declare array Integer myArray() = new Integer(intList.size()); //use toArray method to convert ArrayList to Array myArray = intList.toArray(myArray); //print the Array System.out.println('Array from ArrayList:' + Arrays.toString(myArray)); } }
出力:
ArrayList:(10、20、30、40、50)
ArrayListからの配列:(10、20、30、40、50)
ArrayListクローン
プロトタイプ: オブジェクトクローン()
パラメーター: NIL
戻り値: Object => ArrayListインスタンスのクローン。
説明: 指定されたArrayListのシャローコピーを作成します。
import java.util.ArrayList; public class Main { public static void main(String a()){ ArrayList fruitsList = new ArrayList(); //Adding elements to the ArrayList fruitsList.add('Apple'); fruitsList.add('Orange'); fruitsList.add('Melon'); fruitsList.add('Grapes'); System.out.println('Original ArrayList: '+fruitsList); ArrayList clone_list = (ArrayList)fruitsList.clone(); System.out.println('Cloned ArrayList: '+ clone_list); //add one elmeent & remove one element from original arraylist fruitsList.add('Mango'); fruitsList.remove('Orange'); //print original and cloned ArrayList again System.out.println('
Original ArrayList after add & remove:'+fruitsList); System.out.println('Cloned ArrayList after original changed:'+clone_list); } }
出力:
元のArrayList:(Apple、Orange、Melon、Grapes)
クローン配列リスト:(アップル、オレンジ、メロン、ブドウ)
追加と削除後の元のArrayList:(Apple、Melon、Grapes、Mango)
元の変更後に複製されたArrayList:(Apple、Orange、Melon、Grapes)
上記のプログラム出力から、複製されたArrayListが元のArrayListの浅いコピーであることがわかります。つまり、元のArrayListが変更された場合、これらの変更は各要素のメモリ位置を共有しないため、複製されたArrayListには反映されません。
Arrayのディープコピーを作成するには、元のArrayListをトラバースし、その各要素を宛先のArrayListにコピーする必要があります。
ArrayListサブリスト
プロトタイプ: サブリストのリスト(int fromIndex、int toIndex)
パラメーター: fromIndex =>範囲の開始インデックス(両端を含む)
toIndex =>範囲の終了インデックス(排他的)
戻り値: リスト=>指定された範囲内のリストのサブリスト。
説明: 指定された範囲(fromIndexから指定されたリストのインデックスまで)の間のサブリストを返します。このサブリストまたは指定された範囲内のリストのビューは、リストでサポートされているすべての操作をサポートしていることに注意してください。 fromIndex = toIndexの場合、ビューは返されません。
例外: IndexOutOfBoundsException => toIndexが範囲外の場合にスローされます。
IllegalArgumentException => fromIndex> toIndexの場合、つまりインデックスの順序が正しくない場合。
subListメソッドの例を見てみましょう。
import java.util.ArrayList; import java.util.List; class Main{ public static void main(String a()){ //create and initialize the ArrayList ArrayList intList = new ArrayList(); intList.add(5); intList.add(10); intList.add(15); intList.add(20); intList.add(25); intList.add(30); intList.add(35); intList.add(40); intList.add(45); intList.add(50); //print the ArrayList System.out.println('Original ArrayList: '+intList); //create a sublist for the given ArrayList ArrayList sub_ArrayList = new ArrayList(intList.subList(2, 6)); //print the sublist System.out.println('Sublist of given ArrayList: '+sub_ArrayList); } }
出力:
元のArrayList:(5、10、15、20、25、30、35、40、45、50)
指定されたArrayListのサブリスト:(15、20、25、30)
ArrayListretainAll
プロトタイプ: ブールretainAll(コレクションc)
パラメーター: c =>リストに保持される要素を含むコレクション。
戻り値: true =>操作の結果としてArrayListが変更された場合。
説明: 指定されたコレクションの要素に一致するリスト内の要素を保持しますc。
例外: ClassCastException =>コレクションタイプとリストタイプが一致しません
NullPointerException =>指定されたコレクションがnullであるか、リストにnull要素が含まれていて、コレクションがnullを許可していません。
次のプログラムは、retainAllメソッドを示しています。
import java.util.*; class Main{ public static void main(String args()){ //create and initialize ArrayList ArrayList colorsList=new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print the ArrayList System.out.println('Original ArrayList:' + colorsList); //define another collection ArrayList color_collection=new ArrayList(); color_collection.add('Red'); color_collection.add('Blue'); System.out.println('Collection elements to be retained in the list:' + color_collection); //call retainAll method with above collection as an argument colorsList.retainAll(color_collection); //print the ArrayList after retainAll call. System.out.println('ArrayList after retainAll call:' + colorsList); } }
出力:
元のArrayList:(赤、緑、青、黄色)
リストに保持されるコレクション要素:(赤、青)
holdAll呼び出し後のArrayList:(赤、青)
ArrayListイテレータ
プロトタイプ: イテレータイテレータ()
パラメーター: NIL
戻り値: Iterator =>リスト要素に対するイテレータ。
説明: 適切な順序でリスト要素をトラバースするイテレータを返します。
ArrayList listIterator
私。
プロトタイプ: ListIterator listIterator()
パラメーター: NIL
戻り値: ListIterator =>リスト要素に対するlistIterator。
説明: 指定されたリストの要素をトラバースするリストイテレータを返します。
II。
プロトタイプ: ListIterator listIterator(int index)
パラメーター: index => listIteratorの最初の要素の位置。
戻り値: ListIterator =>指定されたインデックスからのリストのListIterator。
説明: 指定されたリストの要素をトラバースするために、指定された位置「インデックス」から始まるリストイテレータを返します。
例外: IndexOutOfBoundsException =>指定されたインデックスが範囲外です。
iterator()メソッドとlistIterator()メソッドの例。
import java.util.*; class Main{ public static void main(String args()){ //create ArrayList and initialize it ArrayList cities=new ArrayList(); cities.add('Mumbai'); cities.add('Pune'); cities.add('Hyderabad'); cities.add('Delhi'); //use iterator() method to traverse through the list System.out.println('List contents using Iterator () method:'); Iterator iter=cities.iterator(); while(iter.hasNext()){ System.out.print(iter.next() + ' '); } //use listIterator() method to traverse through the list System.out.println('
List contents using listIterator () method:'); ListIterator list_iter=cities.listIterator(); while(list_iter.hasNext()) { System.out.print(list_iter.next() + ' '); } } }
出力:
Iterator()メソッドを使用してコンテンツを一覧表示します。
ムンバイプネハイデラバードデリー
listIterator()メソッドを使用してコンテンツを一覧表示します。
ムンバイプネハイデラバードデリー
JavaでArrayListに配列を追加する
ArrayListは、コレクションの要素をArrayListに追加するためのaddAllメソッドをサポートしています。同様の方法で、ArrayListに配列を追加することもできます。これは、「Collections.addAll」メソッドを使用して行われます。
ArrayListに配列を追加する例。
import java.util.*; class Main{ public static void main(String args()){ //create an ArrayList ArrayList city_List=new ArrayList(); //add elements to the ArrayList using add method city_List.add('Delhi'); city_List.add('Mumbai'); city_List.add('Chennai'); city_List.add('Kolkata'); //print ArrayList System.out.println('
Initial ArrayList :' + city_List); //define an array. String() myArray = new String(){'Cochin', 'Goa'}; //add the array to the ArrayList Collections.addAll(city_List,myArray); //print the ArrayList System.out.println('
ArrayList after adding array :' + city_List); } }
出力:
初期ArrayList:(デリー、ムンバイ、チェンナイ、コルカタ)
配列を追加した後のArrayList:(デリー、ムンバイ、チェンナイ、コルカタ、コーチン、ゴア)
JavaでArrayListを並べ替える
ArrayListは、Collections.sortメソッドを使用して要素を並べ替えます。デフォルトでは、リストはCollections.sortメソッドによって昇順でソートされます。 ArrayListを降順で並べ替える場合は、「Collections.reverseOrder()」パラメーターをsortメソッドに指定する必要があります。
以下に、ArrayListを昇順と降順で並べ替えるプログラムを示します。
import java.util.*; public class Main { public static void main(String args()){ //Create and initialize an ArrayList ArrayList colorsList = new ArrayList(); colorsList.add('Red'); colorsList.add('Green'); colorsList.add('Blue'); colorsList.add('Yellow'); //print initial ArrayList System.out.println('Initial ArrayList:' + colorsList); //sort ArrayList in ascending order Collections.sort(colorsList); //print sorted ArrayList System.out.println('
ArrayList sorted in ascending order:'); System.out.println(colorsList); //sort ArrayList in reverse(desending) order Collections.sort(colorsList, Collections.reverseOrder()); //print sorted list System.out.println('
ArrayList sorted in descending order:'); System.out.println(colorsList); } }
出力:
初期ArrayList:(赤、緑、青、黄色)
昇順でソートされたArrayList:
(青、緑、赤、黄)
降順でソートされたArrayList:
(イエロー、レッド、グリーン、ブルー)
ArrayListに他のクラスオブジェクトが要素として含まれている場合は、ComparableインターフェイスとComparatorインターフェイスを利用できます。インターフェイスの詳細については、後のチュートリアルで説明します。
JavaでArrayListを逆にする
JavaでArrayListを逆にすることもできます。これを行う1つの方法は、ArrayListを逆の順序でトラバースする従来の方法を使用して、各要素を新しいArrayListにコピーすることです。
別のメソッドは、コレクションを逆にするために使用される「reverse」メソッドを提供するCollectionsクラスを使用することです。
Collectionsクラスを使用してArrayListを逆にするプログラムを以下に示します。
import java.io.*; import java.util.*; public class Main { public static void main(String() args) { // create and initialize an ArrayList ArrayList oddList = new ArrayList(); oddList.add(1); oddList.add(3); oddList.add(5); oddList.add(7); oddList.add(9); System.out.print('Initial ArrayList: ' + oddList); // use Collections.reverse method to reverse the ArrayList Collections.reverse(oddList); //print the ArrayList System.out.print('
Reversed ArrayList: ' + oddList); } }
出力:
初期ArrayList:(1、3、5、7、9)
逆配列リスト:(9、7、5、3、1)
JavaのArrayListから重複を削除する
ArrayListから重複を削除するには、イテレータを使用してArrayListをトラバースし、要素の最初の出現のみを別のArrayListに格納する従来の方法に再度頼ることができます。
さらに別の方法は、stream()クラスの「distinct()」メソッドを使用することです。このメソッドは、個別の要素のストリームを返します。ストリーム()機能は、Java8以降のJavaで使用できます。
stream()。distinct()メソッドの実装を以下に示します。
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String() args) { // Create an ArrayList of numbers ArrayList numList = new ArrayList (Arrays.asList(1, 2, 3, 1, 3, 5, 5, 6, 6, 7, 7, 8, 8)); //print the original ArrayList System.out.println('Original ArrayList:' + numList); //Use Java 8 stream().distinct() method to remove duplicates from the list List distinctList = numList.stream().distinct().collect(Collectors.toList()); //print the new list System.out.println('ArrayList without duplicates:' + distinctList); } }
出力:
元のArrayList:(1、2、3、1、3、5、5、6、6、7、7、8、8)
重複のないArrayList:(1、2、3、5、6、7、8)
JavaでArrayListをシャッフル(ランダム化)
ArrayList要素を「シャッフル」またはランダム化することもできます。これは、Collections.shuffle()メソッドを使用して行われます。このメソッドを使用すると、デフォルト設定でArrayListをシャッフルするか、提供されたランダム値に従って要素をランダム化するrandom()関数を提供できます。
これを実現するためのJavaプログラムを以下に示します。
import java.util.*; public class Main { public static void main(String() args) { //create and initialize a String ArrayList ArrayList strlist = new ArrayList(); strlist.add('east'); strlist.add('west'); strlist.add('north'); strlist.add('south'); strlist.add('southwest'); strlist.add('northeast'); //print the original list System.out.println('Original ArrayList :
' + strlist); //shuffle the ArrayList without random function Collections.shuffle(strlist); System.out.println('
Shuffled ArrayList without Random() :
' + strlist); // shuffle the ArrayList with random() function Collections.shuffle(strlist, new Random()); System.out.println('
Shuffled ArrayList with Random() :
' + strlist); // use random (2) to shuffle the ArrayList Collections.shuffle(strlist, new Random(2)); System.out.println('
Shuffled ArrayList with Random(2) :
' + strlist); } }
出力:
元のArrayList:(東、西、北、南、南西、北東) Random()なしでシャッフルされたArrayList:(北、北東、東、南西、南、西)
Random()を使用したシャッフルされたArrayList:(南、東、北、北東、西、南西)
Random(2)を使用したシャッフルされたArrayList:(南西、南、東、北東、北、西)
よくある質問
Q#1)Javaの同種コンテナと異種コンテナの違いは何ですか?
回答: 同種のコンテナには、同じタイプのオブジェクト/要素が含まれています。一方、異種コンテナには混合タイプのオブジェクトがあります。
Q#2) JavaのArrayListは異種ですか?
回答: はい。 ArrayListsはジェネリックをサポートし、したがって型消去をサポートするため、ジェネリックArrayListとして実装すると、混合オブジェクトを含めることができます。
Q#3) ArrayListはintを格納できますか?
回答: いいえ。ArrayListsはintのような値を格納できませんが、ArrayListsにはオブジェクトのみを含めることができるため、Integerオブジェクトを格納できます。したがって、プリミティブ型を格納するには、intにIntegerなどのラッパークラスを使用する必要があります。
Q#4) ArrayListがいっぱいになるとどうなりますか?
回答: すべてのArrayListオブジェクトには、「容量」という名前の機能があります。 ArrayListがいっぱいになると、ArrayListの容量が自動的に増加し、より多くの要素のためのスペースが確保されます。
Q#5) ArrayListのremoveAllメソッドとretainAllメソッドの違いは何ですか?
回答: ArrayListメソッドの「removeAll」と「retainAll」は逆の動作を示します。
removeAllメソッドは、このメソッドに引数として渡されたコレクションと一致するすべての要素をリストから削除しますが、一方、retainAllは、コレクションの要素と一致するリスト内のすべての要素を保持します。
結論
このチュートリアルでは、ArrayListメソッドについて例を挙げて詳しく説明しました。
また、リストの先頭に要素を追加するなど、いくつかの特殊なケースについても検討しました。また、ArrayListの並べ替え、反転、シャッフルなど、ArrayListの他の操作についても説明しました。
次のチュートリアルでは、ArrayList変換のいくつかについて説明します。
=> ここで簡単なJavaトレーニングシリーズに注意してください。