配列は、あらゆるプログラミング言語で広く使用されている必須のデータ構造ですが、サイズが固定であるという欠点が 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 ではプリミティブ データ型を渡すことができないため、対応するラッパー クラスを渡す必要があります。
Integer
や
String
などのラッパー クラスを渡すことで、整数型や文字列型などの単純なデータ型を追加できます。
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: 初心者のための入門 [2023]](https://code2care.org/java/initialize-arraylist-java-with-values/images/Initialize%20ArrayList%20in%20Java%20Example.jpg)
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 を操作するには、複数のメソッドを使用できます。いくつかの方法を見てみましょう。
![Java の ArrayList: 初心者のための入門 [2023]](https://uha-blog.com/wp-content/uploads/2022/08/servlet-arraylist-320x180.png)
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
を返します。
![Java の ArrayList: 初心者のための入門 [2023]](https://proengineer.internous.co.jp/topics/wp-content/uploads/2016/09/javaintro0-1.png)
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
を返します。
![Java の ArrayList: 初心者のための入門 [2023]](https://phoeducation.com/blog_img/arraylist_3.png)
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]
のようになります。
![Java の ArrayList: 初心者のための入門 [2023]](https://www.anken-navi.jp/news/wp-content/uploads/2022/01/4977717_m-e1642038522476.png)
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 コースをチェックしてください。