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 ではプリミティブ データ型を渡すことができないため、対応するラッパー クラスを渡す必要があります。

IntegerStringなどのラッパー クラスを渡すことで、整数型や文字列型などの単純なデータ型を追加できます。

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 コースをチェックしてください。