Java の ArrayList: 初心者向け入門 [2022]
公開: 2022-11-22配列は、すべてのプログラミング言語で広く普及している不可欠なデータ構造ですが、サイズが固定されているという 1 つの欠点があります。 Java の ArrayList がこれにどのように役立つか見てみましょう。
配列には、静的配列または動的配列の 2 つのタイプがあります。 Java などのプログラミング言語では、配列を動的に増やすことはできません。 代わりに、配列の初期化中に配列のサイズが宣言されます。 しかし、多くの場合、これは多くの問題を引き起こす可能性があります。 この問題を解決するために、Java では ArrayLists が使用されます。 要素が ArrayList にプッシュされると、配列のサイズは自動的に増加します。
この記事では、Java の ArrayLists について学びます。 Array と ArrayList の主な違いを理解し、ArrayList のさまざまなタイプとその使用方法についても学びます。
配列とArrayList
Array と ArrayList の主な違いは、Array のサイズは静的ですが、ArrayList のサイズは動的にできることです。 配列は固定されているため、配列を反復処理する時間は動的配列よりも短くなります。
それらの間にはさらにいくつかの違いがあります。
- 静的配列は 1 次元または多次元にできますが、ArrayList は 1 次元にしかできません。
- 配列は、Java で使用できるプリミティブなデータ構造です。 しかし、ArrayList は Java の Collection Framework API の一部です。 配列の上に構築されます。
- プリミティブ データ型で配列を宣言できます。 プリミティブ データ型は ArrayList では使用できません。 プリミティブ データ型を使用する場合は、データ型に対応するラッパー クラスを使用する必要があります。
Java の ArrayList の型
ArrayLists は任意の型にすることができます。 ただし、ArrayList ではプリミティブ データ型を渡すことができないため、対応するラッパー クラスを渡す必要があります。
Integer
やString
などのラッパー クラスを渡すことで、整数型や文字列型などの単純なデータ型を追加できます。
ArrayLists の ArrayLists、ハッシュマップなどの複雑な型を渡すこともできます。
ArrayList 内でカスタム クラスを使用する例を見てみましょう。
import java.util.ArrayList; class User { private String name; private int age; public User(String name, int age) { this.name = name; this.age = age; } public void getUser() { System.out.println("Name: " + name + " Age: " + age); } } class Main { public static void main(String[] args) { ArrayList<User> users = new ArrayList<>(); users.add(new User("Subha", 25)); users.add(new User("Dan", 32)); users.forEach(user -> { user.getUser(); }); } } Output: Name: Subha Age: 25 Name: Dan Age: 32
上記のコード サンプルでは、タイプUser
の ArrayList が作成されます。 以下の例で使用されているメソッドについて詳しく説明します。
Java で ArrayList を作成する
Java での ArrayList の基本は既に理解しています。 次に、ArrayList の構文を見てみましょう。次に、Java コードでどのように使用できるかについても説明します。
ArrayList<Type> listName = new ArrayList<>();
上記のスニペットは、ArrayList を定義する構文を示しています。 Type
は ArrayList のタイプを定義します。 たとえば、整数データ型の ArrayList を宣言する場合は、 <Integer>
を渡すことができます。 int
はプリミティブ データ型であるため、渡すことができないことに注意してください。
また、プログラムで ArrayList を使用するには、 java.util.ArrayList
をインポートする必要があります。 ArrayList を宣言するプログラムの基本的な例を次に示します。
import java.util.ArrayList; class Main { public static void main(String[] args) { // Declare An ArrayList ArrayList<String> rainbow = new ArrayList<>(); System.out.println(rainbow); } } Output: []
上記のコードでは、 String
型のrainbow
という名前の ArrayList が宣言されています。
ArrayList を操作するには、複数のメソッドを使用できます。 いくつかの方法を見てみましょう。
add
メソッド
ArrayList クラスは、要素の追加または削除、値の取得、特定の位置での値の設定、ArrayList のクリアなどの操作を実行するためのさまざまなメソッドを提供します。
最初に表示されるメソッドはadd
メソッドです。
add
メソッドは、単一の項目をArrayList
に追加するために使用されます。 add
の構文を以下に示します。
arrayList.add(int i, Element)
構文を理解しましょう。 最初のパラメーターi
は、追加する項目のインデックス位置を表すオプションのパラメーターです。 2 番目のパラメーターElement
は、追加する要素です。 では、例を見てみましょう。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet]
rainbow.add("Violet")
は、ArrayList の末尾に要素を追加します。 そしてrainbow.add(0, "Red")
は要素Red
を ArrayList のインデックス位置0
に追加します。 add()
メソッドは、アイテムが正常に挿入されるとtrue
を返します。
get
メソッド
get
メソッドは、ArrayList から指定した位置の値を取得するために使用されます。
arrayList.get(int i);
上記の構文に示されているi
は、インデックス位置です。 たとえば、インデックス位置1
からアイテムを取得する場合は、 arrayList.get(1)
と記述します。

rainbow.add("Violet"); rainbow.add(0, "Red"); String color = rainbow.get(1); System.out.println(color); Output: Violet
上記のコードは ArrayList rainbow
からViolet
を返します。
set
方法
set
メソッドは、アイテムの値を置き換えるために使用されます。 たとえば、インデックス位置0
の項目の値を置き換えたい場合は、 rainbow
という ArrayList があると仮定してrainbow.set(0, "Purple")
と記述します。
set
メソッドの構文は次のとおりです。
arrayList.set(int i, Element);
ここで、 i
はインデックス位置、 Element
は新しい要素の値です。
rainbow.add("Violet"); System.out.println(rainbow); Output: [Violet] rainbow.add(0, "Red"); System.out.println(rainbow); Output: [Red, Violet] rainbow.set(1, "Purple"); System.out.println(rainbow); Output: [Red, Purple]
上記の例では、 rainbow
という ArrayList に 2 つの値を追加します。 最初に要素Violet
が追加され、次に ArrayList の位置0
にアイテムRed
が追加されます。 この時点で、完全な ArrayList は[Red, Violet]
のようになります。
ここで、インデックス位置1
の要素は、 set
メソッドを使用して値Purple
に置き換えられます。 値を置き換えた後、ArrayList は[Red, Purple]
のようになります。
remove
メソッド
ArrayList remove
メソッドは、ArrayList から値を削除するために使用されます。 値または削除する値のインデックス位置を渡すことができます。 remove
メソッドの構文は次のとおりです。
arrayList.remove(Object value); // or arrayList.remove(int i);
メソッドをよりよく理解するために、例を挙げてみましょう。 これらの値[Violet, Red, Green]
を持つrainbow
という名前の ArrayList があるとします。 ここで、ArrayList からRed
を削除する場合は、 rainbow.remove("Red");
記述できます。 . rainbow
ArrayList でこのメソッドを呼び出すと、そこから要素Red
が削除されます。
// rainbow = [Violet, Red, Green] rainbow.remove("Red"); System.out.println(rainbow); Output: [Violet, Green]
インデックス位置を渡して、インデックス位置のアイテムを削除することもできます。
//rainbow = [Red, Green] rainbow.remove(0); // Remove item at index position 0 System.out.println(rainbow); Output: [Green]
clear
方法
名前が示すように、 clear
メソッドは ArrayList からすべての要素を削除します。 構文は簡単で、パラメーターは必要ありません。
arraylist.clear()
例を見てみましょう。
rainbow.clear(); System.out.println(rainbow); Output: []
clear
メソッドは値を返しません。 代わりに、指定された ArrayList の値をクリアします。
size
方法
size
メソッドは、指定された ArrayList のサイズを返します。 このメソッドもパラメーターを取りません。 構文を以下に示します。
arrayList.size();
arrayList
は、ここでの ArrayList の名前です。 例を使ってsize
メソッドを理解しましょう。
ArrayList<String> rainbow = new ArrayList<>(); rainbow.add("Violet"); rainbow.add("Red"); rainbow.add("Green"); System.out.println(rainbow.size()); Output: 3
このメソッドは、ArrayList サイズの値を返します。 上記の例では、ArrayList rainbow
は 3 つの値で構成されているため、 size
メソッドは 3 を返します。
結論
この記事では、ArrayList とは何か、および Array との違いについて説明しました。 また、ArrayList クラスで使用可能なさまざまなメソッドを使用して、ArrayList を宣言および使用する方法も確認しました。
Java の学習をさらに深めたい場合は、これらのオンライン Java コースをチェックしてください。