Java での ArrayList の使用
ArrayList は、
List インターフェイスを実装する動的配列です。このインターフェイスのユーザーは、挿入された要素を完全に制御し、位置によってそれらにアクセスし、リスト内の要素を検索します.
ArrayListは、Listのすべてのメソッドを実装し、それ以上に、クラスには、リストを格納するために使用される配列のサイズを操作するなどの独自のメソッドがあります。このクラスは、
Vector.
Arraylistはデータを格納する配列を使用し、この配列には要素が挿入されるたびに自動的に適応する機能があります。多数の項目を追加する前に ArrayList の容量を増やしてサイズを確保する ensureCapacity メソッドがあります。
リストには複数のスレッドが同時にアクセスします。これは、別のスレッドがリストのサイズにアクセスして更新しようとしているため、変更、挿入、削除に関して問題が発生する可能性があります。解決策は、Collections.synchronizedList.
リストリスト = Collections.synchronizedList(new ArrayList(...));イテレータまたはlistIteratorクラスでリストを参照するが、リストが変更されている場合:削除、挿入...イテレータを作成した後、後者は例外
ConcurrentModificationExceptionです。解決策は、イテレータの作成後およびread.
Constructors
ArrayListには3つのコンストラクタがあります:
-
ArrayList(): 初期サイズが 10.
-
ArrayList(Collection extends E> c): データ・コレクションからリストを作成し、コレクションがnullの場合に例外をスローします #0b5394<><
NullPointerException>ArrayList(int capacite): 初期サイズを設定してリストを作成し、サイズが負の場合はIllegalArgumentExceptionをスローします.
Methods
1)
add(Object o): end.
list.add("Hello");
2)
add(int indice, Object o): 中央に挿入.
文字列 String を 3 番目の位置に挿入します。
3)
addAll(Collection c): コレクションを追加.
ArrayList l1 = new ArrayList(); l1.add("単語"); l1.add(12); l1.add(10.4f); list.addAll(l1); |
このメソッドは別のリストを追加します
l1 リストの末尾に
list.
4)
addAll(int index, Collection c): 中央にコレクションを追加
l1リストを位置3に挿入します。インデックスが 3 より大きい他の要素は offset.
5)
clear(): すべての要素を削除
6)
contains(オブジェクトo): 要素メンバーシップ.
boolean b = list.contains(o) |
o オブジェクトが list.
8)
ensureCapacity(int capacite): 容量を増やし、最小容量で多数の要素を保持できるようにします.
これにより、10個の要素で容量が増加します.
9)
get(int index): オブジェクトを 1 つの位置に戻します.
system.out.println(list.get(2)); |
この関数は、リストに格納されている 2 番目のオブジェクトを表示します。
10)
indexOf(Object o): 要素のインデックスを返す
整数変数 k は、オブジェクト o4 が最初に出現するインデックスを受け取ります。最初の1つだけをよく言いました occurrence.
11)
isEmpty(): リストが空の場合に true を返します.
boolean b = list.isEmpty(); |
リストが空の場合、b はtrueです.
12)
remove(Object o): o.
boolean b = list.remove("o4"); |
オブジェクトが存在し、正常に削除された場合に true を返します。
13)
removeAll(コレクション>c): 引数として渡されたコレクション内の要素を削除します.
AarrayList<文字列>lc = new ArrayListです<文字列>(); lc です。add("o1"); lc です。add("o2"); lc です。add("o3"); list.removeAll(lc); |
要素を検索して削除します.
14)
removeRange( int start, int end): 開始と終了の添字の間にある要素を削除します。
このプロシージャは、3から8.
15)
retainsAll(コレクション>c): コレクション内の要素のみを保持します c.
16)
set(int index, Object o): オブジェクトを特定の位置に変更
位置 3 のオブジェクトは o5.
17)
size(): 要素数を返す.
18)
subList(int start, int end): 先頭と末尾の間のフラグメントを返します。
19)
toArray(): 1 次元の配列を返す
String[] t = list.toArray(); |
t 配列には、リスト内のすべてのオブジェクトが含まれます。このメソッドは、配列のみを受け入れる関数がある場合に便利です (例: .
20)
trimToSize(): ストレージ容量を最大レベルまで削減します。
ArrayListの参照方法
ArrayListは2つの方法で参照できます:
1)ループfor< / span >< / h4>for(int i = 0; i < list.size(); i++) system.out.println(list.get(i)); または、たとえば、型がわかっている場合: for(整数:リスト) system.out.println(数値); |
2) イテレータ + while
Iterator itr = list.iterator(); while(itr.hasNext()) system.out.println(itr.next()); |
例
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
//初期容量が 4
ArrayList str = new ArrayList(4);
//追加
str.add("o1");
str.add("o2");
str.add("o3");
str.add("o4");
//いくつかのメソッドを見てきました
System.out.println("index of "+"o2: "+str.indexOf("o2"));
System.out.println("o3 は存在しますか?"+str.contains("o3"));
System.out.println("o2 が正常に削除されました: "+str.remove("o2"));
System.out.println("size: "+str.size());
System.out.println("[1, 3] : "+str.subList(1, 3));
//parcours
for(String s : str)
System.out.println(s);
str.clear();
System.out.println("リストが空ですか?"+str.isEmpty());
}
}
References:
javadoc:ArrayList