基本的な定義
ArrayList は、Java Collections Framework (
java.util
パッケージ内のクラス) の一部である Java の動的配列データ構造です。これは、配列ベースの可変長リストを提供し、配列のサイズを事前に指定しなくても、実行時に要素の追加、削除、およびアクセスを可能にします。つまり、これは Java ライブラリにある何百ものクラスの 1 つであり、独自のクラスとして直接使用できます。
ArrayList クラスの基本(部分)メソッド
add(Object elem): オブジェクト パラメーターをリストに追加します。つまり、 ArrayList の最後に新しい要素を追加します。
add(int index, Object elem): elemオブジェクトをindexに対応する添え字に追加します。
Remove(int Index): インデックスに対応するオブジェクトを削除します。
Remove(Object elem):オブジェクトを削除します。デフォルトでは、最初に一致したオブジェクトのみが削除されます。
contains(Object elem): オブジェクトが含まれているかどうかを確認します。含まれている場合は "true" を返し、そうでない場合は "false" を返します。
isEmpty(): リストに要素がない場合は「true」を返します。
IndexOf(Object elem): オブジェクトが存在する場合は、対応する添字を返し、存在しない場合は、-1 を返します。
size(): ArrayList の現在のサイズを返します。
get(int index): 現在のインデックスパラメータのオブジェクトを返します。
ArrayList メソッドの使用法を説明する例を示します。
import java.util.ArrayList;
class Egg {
}
public class testArrayList {
public static void main(String[] args) {
//1.创建:<括号>代表创建出Egg类型的basket
//新的ArrayList对象会创建在堆上
ArrayList<Egg> basket = new ArrayList<Egg>();
//2.加入元素
//此ArrayList会产生一个"筐子"来放Egg对象
Egg s = new Egg();
basket.add(s);
//3.再加入元素
//此ArrayList会再次整一个筐子来存放Egg对象
Egg b = new Egg();
basket.add(b);
//4.查询大小
//因为basket含有两个元素,size()会返回2
int theSize = basket.size();
//5.查询特定元素
//因为basket带有s所引用的Egg对象,所以此方法会返回true
boolean isIn = basket.contains(s);
//6.查询特定元素的位置
//b是创建的第二个对象,因此返回1
int idx = basket.indexOf(b);
//7.判断集合是否为空
//因为不是空的,所以返回false
boolean empty = basket.isEmpty();
//8.删除元素
basket.remove(s);
}
}
ArrayList と一般的な配列の比較
一般的な配列は作成時にサイズを指定する必要があります
ただし、ArrayList の場合は、このタイプのオブジェクトを作成するだけで済みます。要素を追加または削除すると自動的にサイズが変更されるため、サイズを指定する必要はありません。
new String[2] //サイズを指定
new ArrayList<String>() //サイズを指定する必要はありません
一般配列にオブジェクトを格納する場合は、場所を指定する必要があります。
(長さより 0 ~ 1 小さい数値を指定する必要があります)
myList[1] = b;//インデックス値を指定
インデックス値が配列の制限を超える場合 (サイズ 2 の配列を宣言してからインデックス値 3 を割り当てるなど)、プログラムは実行時に失敗します。
ArrayList を使用する場合、add(Int, Object) の形式を使用してインデックス値を指定したり、add(Object) の形式を使用して独自のサイズを管理したりできます。
myList.add(b);//インデックス値を指定する必要はありません
一般的な配列は特別な構文を使用します
ただし、ArrayList は通常のオブジェクトであるため、特別な構文はありません。
myList[1]//[角括弧] は配列で使用される特別な構文を指します
Java5.0のArrayListはパラメータ化されています
ArrayList には一般的な配列のような特別な構文はないと言いましたが、Java5.0 でパラメータ化された型には特別なものがあります。
ArrayList<String> //<String> は型パラメータです。これは、ArraysList<Egg> が Egg のコレクションを表すと言うのと同じように、String のコレクションを表します。
Java5.0 より前では、ArrayList に格納される要素の型を宣言することはできず、異種オブジェクトのコレクションにすぎませんでした。