English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基础教程

Java プロセス制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 例外処理

Java リスト(List)

Java Queue(キュー)

Java Map集合

Java Set集合

Java 入出力(I/O)

Java Reader/Writer

Javaの他のトピック

Java ArrayList

このチュートリアルでは、JavaのArrayListクラスを学びます。サンプルを通じてArrayListの異なる操作とメソッドを学びます。

ArrayListクラスはListインターフェースを実装しており、可変サイズの配列を作成することができます。

Java配列とArrayList

Javaでは、配列を使用する前にまずサイズを宣言する必要があります。配列のサイズが宣言されると、それを変更することは難しいです。

この問題を解決するために、ArrayListクラスを使用することができます。java.utilパッケージに存在するArrayListクラスは、可変サイズの配列を作成することができます。

配列とは異なり、配列リスト(ArrayListクラスのオブジェクト)は要素を追加したり削除したりする際に自動的に容量を調整することができます。したがって、配列リストは動的配列とも呼ばれます。

ArrayListの作成

これはJavaで配列リストを作成する方法です:

ArrayList<Type> arrayList= new ArrayList<>();

ここでは、Typeは配列リストのタイプを示しています。例えば、}}

//整数タイプのarraylistを作成
ArrayList<Integer> arrayList = new ArrayList<>();
//文字列タイプのarraylistを作成
ArrayList<String> arrayList = new ArrayList<>();

上記のプログラムでは、IntegerとStringを使用しました。ここでは、Integerはint型の対応するパッケージクラスです。

パッケージクラスは、原始データ型をパッケージするクラスです。例えば、Integerクラスはint型をパッケージ、FloatクラスはFloat型をパッケージなどです。

注意:原始データ型(int、float、charなど)の配列リストを作成することはできません。代わりに、それらの対応するパッケージクラスを使用する必要があります。

文字列の場合、Stringはクラスであり、パッケージクラスではありません。したがって、そのまま使用します。

さらに、Listインターフェースを使用してArrayListを作成することもできます。これは、ArrayListクラスがListインターフェースを実装しているためです。

List<String> list = new ArrayList<>();

ArrayListのメソッド

ArrayListは、配列リスト操作を実行できるさまざまなメソッドを提供しています。

ArrayListに要素を追加

1.add()メソッドを使用して

配列リストに単一の要素を追加するには、add()メソッドを使用します。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //要素を追加
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
    }
}

出力結果

ArrayList: [Dog, Cat, Horse]

2.インデックス番号を使用して

さらに、インデックスを使用して要素を配列リストに追加することもできます。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //要素を追加
        animals.add(0,"Dog");
        animals.add(1,"Cat");
        animals.add(2,"Horse");
        System.out.println("ArrayList: ") + animals);
    }
}

出力結果

ArrayList: [Dog, Cat, Horse]

3.配列リストの要素を別の配列リストに追加

配列リストのすべての要素を新しい配列リストに追加するには、addAll()メソッドを使用してください。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args){
        ArrayList<String> mammals = new ArrayList<>();
        mammals.add("Dog");
        mammals.add("Cat");
        mammals.add("Horse");
        System.out.println("哺乳類: " + mammals);
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Crocodile");
        // mammalsすべての要素をanimalsに追加
        animals.addAll(mammals);
        System.out.println("動物: " + animals);
    }
}

出力結果

哺乳动物: [Dog, Cat, Horse]
Animals: [Crocodile, Dog, Cat, Horse]

使用asList()初始化ArrayList

与数组不同,我们不能直接初始化数组列表。 但是,我们可以使用Arrays类的asList()方法来达到相同的效果。

为了使用asList()方法,我们必须先导入 java.util.Arrays 包。

例如,

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //配列リストを作成します
        ArrayList<String> animals = new ArrayList<>(Arrays.asList("Cat", "Cow", "Dog"));
        System.out.println("ArrayList: ") + animals);
        //访问数组列表中的元素
        String element = animals.get(1);
        System.out.println("访问元素: " + element);
    }
}

出力結果

ArrayList: [Cat, Cow, Dog]
访问元素: Cow

在上面的示例中,请注意以下表达式:

new ArrayList<>(Arrays.asList(("Cat", "Cow", "Dog"));

在这里,我们首先在3个元素的数组:"Cat","Cow",和"Dog"。然后,该asList()方法用于将数组转换为数组列表。

访问ArrayList的元素

1.使用get()方法

要随机访问数组列表的元素,我们使用get()方法。例如,

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");
        System.out.println("ArrayList: ") + animals);
        //从数组列表中获取元素
        String str = animals.get(0);
        System.out.print("索引0处的元素: " + str);
    }
}

出力結果

ArrayList: [Dog, Horse, Cat]
索引0处的元素: Dog

2.使用 iterator() 方法

要按顺序访问数组列表的元素,我们使用iterator()方法。我们必须导入 java.util.Iterator 包才能使用此方法。例如,

import java.util.ArrayList;
import java.util.Iterator;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        animals.add("Zebra");
        //创建一个Iterator对象
        Iterator<String> iterate = animals.iterator();
        System.out.print("ArrayList: ");
        //使用Iterator的方法访问元素
        while(iterate.hasNext()){
            System.out.print(iterate.next());
            System.out.print(", ");
        }
    }
}

出力結果

ArrayList: Dog, Cat, Horse, Zebra,

注意事項

  • hasNext() - 次の要素がある場合、trueを返します。

  • next()  -  次の要素を配列リストから返します

ArrayList要素を変更

配列リストの要素を変更するには、set()メソッドを使用できます。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //配列リストの要素を変更
        animals.set(2, "Zebra");
        System.out.println("変更後のArrayList: " + animals);
    }
}

出力結果

ArrayList: [Dog, Cat, Horse]
変更後のArrayList: [Dog, Cat, Zebra]

ArrayList要素を削除

1.remove()メソッドを使用

配列リストから要素を削除するには、remove()メソッドを使用できます。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("初期ArrayList: " + animals);
        //インデックス2から削除
        String str = animals.remove(2);
        System.out.println("最終ArrayList: " + animals);
        System.out.println("削除する要素: " + str);
    }
}

出力結果

初期ArrayList: [Dog, Cat, Horse]
最終ArrayList: [Dog, Cat]
削除する要素: Horse

2.removeAll()メソッドを使用

配列リストからすべての要素を削除するには、removeAll()メソッドを使用します。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // ArrayListに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("初期ArrayList: " + animals);
        // すべての要素を削除
        animals.removeAll(animals);
        System.out.println("最終ArrayList: " + animals);
    }
}

出力結果

初期ArrayList: [Dog, Cat, Horse]
最終ArrayList: []

3.clear()メソッドを使用

さらに、clear()メソッドを使用して配列リストからすべての要素を削除できます。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("初期ArrayList: " + animals);
        //すべての要素を削除
        animals.clear();
        System.out.println("最終ArrayList: " + animals);
    }
}

出力結果

初期ArrayList: [Dog, Cat, Horse]
最終ArrayList: []

注意:clear()メソッドはremoveAll()メソッドよりも効率的です。

ArrayListを巡回

1.forループを使用

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        //配列リストを作成します
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Cat");
        animals.add("Dog");
        System.out.println("ArrayList: ") + animals);
        //forループを使用
        System.out.println("すべての要素にアクセス: ");
        for(int i = 0; i < animals.size(); i++) {
            System.out.print(animals.get(i));
            System.out.print(", ");
        }
    }
}

出力結果

ArrayList: [Cow, Cat, Dog]
すべての要素にアクセスします:
Cow, Cat, Dog,

2.forEachループを使用

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        // 配列リストを作成します
        ArrayList<String> animals = new ArrayList<>();
        animals.add("Cow");
        animals.add("Cat");
        animals.add("Dog");
        System.out.println("ArrayList: ") + animals);
        //forEachループを使用します
        System.out.println("すべての要素にアクセスします: ")
        for(String animal : animals) {
            System.out.print(animal);
            System.out.print(", ");
        }
    }
}

出力結果

ArrayList: [Cow, Cat, Dog]
すべての要素にアクセスします:
Cow, Cat, Dog,

二つの例で、私たちは配列リストの各要素にアクセスするためにループを使用しました。

ArrayListの長さを取得します

配列リストの長さを取得するには、size()メソッドを使用します。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        // arrayListに要素を追加します
        animals.add("Dog");
        animals.add("Horse");
        animals.add("Cat");
        System.out.println("ArrayList: ") + animals);
        //arrayListのサイズを取得します
        System.out.println("arrayListのサイズ: ") + animals.size());
    }
}

出力結果

ArrayList: [Dog, Horse, Cat]
arrayListのサイズ: 3

ArrayListの要素をソートします

配列リストの要素をソートするには、Collectionsクラスのsort()メソッドを使用します。それを使用するには、java.util.Collectionsパッケージをまずインポートする必要があります。

デフォルトでは、ソートはアルファベットまたは数字の昇順で行われます。例えば、

import java.util.ArrayList;
import java.util.Collections;
class Main {
    public static void main(String[] args){
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Horse");
        animals.add("Zebra");
        animals.add("Dog");
        animals.add("Cat");
        System.out.println("未ソートのArrayList: ") + animals);
        //配列リストをソートします
        Collections.sort(animals);
        System.out.println("ソートされたArrayList: ") + animals);
    }
}

出力結果

未ソートのArrayList: [Horse, Zebra, Dog, Cat]
ソートされたArrayList: [Cat, Dog, Horse, Zebra]

配列リストのソートに関する詳細情報を知りたい場合は、Java ArrayList sortを訪れてください。

Java ArrayListを配列に変換

Javaでは、toArray()メソッドを使用して配列リストを配列に変換できます。例えば、

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //配列リストに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //新しいString型の配列を作成
        String[] arr = new String[animals.size()];
        //ArrayListを配列に変換
        animals.toArray(arr);
        System.out.print("Array: ");
        for(String item: arr) {
            System.out.print(item+", ");
        }
    }
}

出力結果

ArrayList: [Dog, Cat, Horse]
Array: Dog, Cat, Horse,

Java Array を ArrayList に変換

配列を配列リストに変換することもできます。そのために、ArraysクラスのasList()メソッドを使用できます。

asList()を使用するには、まずjava.util.Arraysパッケージをインポートする必要があります。例えば、

import java.util.ArrayList;
import java.util.Arrays;
class Main {
    public static void main(String[] args) {
        //文字列型の配列を作成
        String[] arr = {"Dog", "Cat", "Horse"};
        System.out.print("Array: ");
        //配列を印刷
        for(String str: arr) {
            System.out.print(str);
            System.out.print(" ");
        }
        //配列からArrayListを作成
        ArrayList<String> animals = new ArrayList<>(Arrays.asList(arr));
        System.out.println("\nArrayList: ") + animals);
    }
}

出力結果

Array: Dog, Cat, Horse
ArrayList: [Dog, Cat, Horse]

上記のプログラムでは、まずString型の配列arrを作成します。

次に、asList()メソッドを使用して配列を配列リストに変換します。

Java ArrayList を文字列に変換

配列リストを文字列に変換するには、toString()メソッドを使用できます。例えば

import java.util.ArrayList;
class Main {
    public static void main(String[] args) {
        ArrayList<String> animals = new ArrayList<>();
        //ArrayListに要素を追加します
        animals.add("Dog");
        animals.add("Cat");
        animals.add("Horse");
        System.out.println("ArrayList: ") + animals);
        //ArrayListを文字列に変換する
        String str = animals.toString();
        System.out.println("String: " + str);
    }
}

出力結果

ArrayList: [Dog, Cat, Horse]
String: [Dog, Cat, Horse]

注意: toString()は配列リスト全体を単一のStringに変換します。

他の ArrayList メソッド

メソッド内容説明
clone()

同じ要素、サイズ、容量を持つ新しい配列リストを作成します。

contains()

指定された要素を配列リスト内で検索し、その要素が含まれているかどうかを布尔値で返します。

ensureCapacity()

配列リストが含むことができる最大の要素数を指定します。

isEmpty()

配列リストが空かどうかを確認します。

indexOf()

指定された要素を配列リスト内で検索し、その要素のインデックスを返します。

trimToSize()

配列リストの容量を現在のサイズに減らします。