Java ArrayList

Java 集合框架Java コレクションフレームワーク

ArrayList クラスは動的に変更できる配列であり、通常の配列との違いは固定サイズの制限がないことで、要素を追加または削除できます。

ArrayList は AbstractList を継承し、List インターフェースを実装しています。

ArrayList クラスは java.util パッケージにあり、使用前にそれをインポートする必要があります。構文は次のとおりです:

import java.util.ArrayList; // 引入 ArrayList 类

ArrayList<E> objectName =new ArrayList<>();  // 初始化
  • E: ジェネリック型データ。objectName のデータ型を設定するために使用します。参照型データのみ可能です。
  • objectName: オブジェクト名。

ArrayList は配列キューであり、追加、削除、変更、走査などの関連機能を提供します。

要素の追加

ArrayList クラスには便利なメソッドが多数用意されており、ArrayList に要素を追加するには add() メソッドを使用できます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites);
    }
}

上記の例を実行すると、出力結果は次のようになります:

[Google, サンプル, Taobao, Weibo]

要素へのアクセス

ArrayList 内の要素にアクセスするには、get() メソッドを使用できます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.get(1));  // 2番目の要素にアクセス
    }
}

注意:配列のインデックス値は 0 から始まります。

上記の例を実行すると、出力結果は次のようになります:

サンプル

要素の変更

ArrayList 内の要素を変更する場合、set() メソッドを使用できます。set(int index, E element) メソッドの最初のパラメータはインデックス(index)で、置き換える要素の位置を示し、2番目のパラメータは新しい要素(element)で、設定する新しい値を示します:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.set(2, "Wiki"); // 最初のパラメータはインデックス位置、2番目は変更する値
        System.out.println(sites);
    }
}

上記の例を実行すると、出力結果は次のようになります:

[Google, サンプル, Wiki, Weibo]

要素の削除

ArrayList 内の要素を削除するには、remove() メソッドを使用できます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        sites.remove(3); // 4番目の要素を削除
        System.out.println(sites);
    }
}

上記の例を実行すると、出力結果は次のようになります:

[Google, サンプル, Taobao]

サイズの計算

ArrayList 内の要素数を計算するには、size() メソッドを使用できます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        System.out.println(sites.size());
    }
}

上記の例を実行すると、出力結果は次のようになります:

4

配列リストの反復

for を使用して配列リスト内の要素を反復処理できます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        for (int i = 0; i < sites.size(); i++) {
            System.out.println(sites.get(i));
        }
    }
}

上記の例を実行すると、出力結果は次のようになります:

Google
サンプル
Taobao
Weibo

for-each を使用して要素を反復処理することもできます:

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Google");
        sites.add("サンプル");
        sites.add("Taobao");
        sites.add("Weibo");
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

上記の例を実行すると、出力結果は次のようになります:

Google
サンプル
Taobao
Weibo

その他の参照型

ArrayList 内の要素は実際にはオブジェクトであり、上記の例では、配列リストの要素はすべて String 型の文字列です。

他の型を格納したい場合、<E> は参照型データのみ使用できるため、基本型のラッパークラスを使用する必要があります。

基本型に対応するラッパークラスの表は次のとおりです:

基本型参照型
booleanBoolean
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter

さらに、BigInteger、BigDecimal は高精度の演算に使用され、BigInteger は任意精度の整数をサポートします。これらも参照型ですが、対応する基本型はありません。

ArrayList<Integer> li=new ArrayList<>();     // 存放整数元素
ArrayList<Character> li=new ArrayList<>();   // 存放字符元素

次の例では、ArrayList を使用して数値を格納します(Integer 型を使用):

例

import java.util.ArrayList;

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(10);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(25);
        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

上記の例を実行すると、出力結果は次のようになります:

10
15
20
25

ArrayListのソート

Collections クラスも非常に便利なクラスで、java.util パッケージにあります。提供される sort() メソッドは、文字または数字のリストをソートできます。

次の例では、アルファベットをソートします:

例

import java.util.ArrayList;
import java.util.Collections;  // Collections クラスをインポート

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<String> sites = new ArrayList<String>();
        sites.add("Taobao");
        sites.add("Wiki");
        sites.add("サンプル");
        sites.add("Weibo");
        sites.add("Google");
        Collections.sort(sites);  // アルファベットのソート
        for (String i : sites) {
            System.out.println(i);
        }
    }
}

上記の例を実行すると、出力結果は次のようになります:

Google
サンプル
Taobao
Weibo
Wiki

次の例では、数字をソートします:

例

import java.util.ArrayList;
import java.util.Collections;  // Collections クラスをインポート

public class サンプルTest {
    public static void main(String[] args) {
        ArrayList<Integer> myNumbers = new ArrayList<Integer>();
        myNumbers.add(33);
        myNumbers.add(15);
        myNumbers.add(20);
        myNumbers.add(34);
        myNumbers.add(8);
        myNumbers.add(12);

        Collections.sort(myNumbers);  // 数字のソート

        for (int i : myNumbers) {
            System.out.println(i);
        }
    }
}

上記の例を実行すると、出力結果は次のようになります:

8
12
15
20
33
34

Java ArrayList メソッド

Java ArrayList のよく使われるメソッドの一覧は次のとおりです:

メソッド 説明
add() 指定した位置の arraylist に要素を挿入します
addAll() コレクション内のすべての要素を arraylist に追加します
clear() arraylist 内のすべての要素を削除します
clone() arraylist のコピーを作成します
contains() 要素が arraylist 内にあるかどうかを判定します
get() インデックス値を使用して arraylist 内の要素を取得します
indexOf() arraylist 内の要素のインデックス値を返します
removeAll() 指定したコレクション内に存在する arraylist 内のすべての要素を削除します
remove() arraylist 内の単一の要素を削除します
size() arraylist 内の要素数を返します
isEmpty() arraylist が空かどうかを判定します
subList() arraylist の一部の要素を切り出します
set() arraylist 内の指定したインデックスの要素を置き換えます
sort() arraylist の要素をソートします
toArray() arraylist を配列に変換します
toString() arraylist を文字列に変換します
ensureCapacity() 指定した容量サイズの arraylist を設定します
lastIndexOf() 指定した要素が arraylist 内で最後に出現する位置を返します
retainAll() 指定したコレクションにも存在する arraylist 内の要素を保持します
containsAll() arraylist が指定したコレクション内のすべての要素を含むかどうかを確認します
trimToSize() arraylist の容量を配列内の要素数に調整します
removeRange() arraylist 内の指定したインデックス間に存在する要素を削除します
replaceAll() 指定された操作内容で配列内の各要素を置き換えます
removeIf() 特定の条件を満たすすべての arraylist 要素を削除します
forEach() arraylist 内の各要素を走査し、特定の操作を実行します

その他の API メソッドは次を参照できます:https://www.example.com/manual/jdk11api/java.base/java/util/ArrayList.html

Java 集合框架Java コレクションフレームワーク

その他の拡張