ホーム テクノロジー 開発 Java の ArrayList: 初心者のための入門 [2023]

Java の ArrayList: 初心者のための入門 [2023]


配列は、あらゆるプログラミング言語で広く使用されている必須のデータ構造ですが、サイズが固定であるという欠点が 1 つあります。 Java の ArrayList がこれにどのように役立つかを見てみましょう。

配列には、静的配列と動的配列の 2 つのタイプがあります。 Java などのプログラミング言語では、配列を動的に増やすことはできません。代わりに、配列のサイズは配列の初期化中に宣言されます。しかし、多くの場合、これは多くの問題を引き起こす可能性があります。この問題を解決するために、Java では ArrayList が使用されます。要素が ArrayList にプッシュされると、配列サイズは自動的に増加します。

この記事では、Java の ArrayList について学びます。 Array と ArrayList の主な違いを理解し、さまざまなタイプの ArrayList とその使用方法についても学びます。

配列と ArrayList

Array と ArrayList の主な違いは、Array のサイズは静的ですが、ArrayList のサイズは動的に変更できることです。配列は固定されているため、配列の反復処理にかかる時間は動的配列よりも短くなります。

それらの間にはさらにいくつかの違いがあります。

  • 静的配列は単一次元または多次元にすることができますが、ArrayList は単一次元のみにすることができます。
  • 配列は、Java で使用できる基本的なデータ構造です。ただし、ArrayList は Java のコレクション フレームワーク API の一部です。これは配列の上に構築されます。
  • プリミティブ データ型を使用して配列を宣言できます。プリミティブ データ型は ArrayList では使用できません。プリミティブ データ型を使用する場合は、そのデータ型に対応するラッパー クラスを使用する必要があります。

Java の ArrayList の種類

ArrayList は任意の型にすることができます。ただし、ArrayList ではプリミティブ データ型を渡すことができないため、対応するラッパー クラスを渡す必要があります。

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

ArrayList の ArrayList、ハッシュマップなどの複合型を渡すこともできます。

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 を使用する方法も見てみましょう。

 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:
[]

上記のコードでは、 rainbowという名前のString型の 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]のようになります。

ここで、 setメソッドを使用して、インデックス位置1の要素が値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 とは何か、また ArrayList と Array の違いについて説明しました。また、ArrayList クラスで利用可能なさまざまなメソッドを使用して ArrayList を宣言し、使用する方法についても説明しました。

Java の学習をさらに深めたい場合は、これらのオンライン Java コースをチェックしてください。

「 Java の ArrayList: 初心者のための入門 [2023]」についてわかりやすく解説!絶対に観るべきベスト2動画

ArrayListクラスを便利に使えるイテレータを初心者向けに解説【Java入門講座】6-6 Iteratorインタフェース
【Java基礎講座 #25】コレクション | ArrayListを使いこなそう!【ArrayList】