1.ArrayList
クラス
今日はクラスを探索してみますArrayList
。これは、コレクションとして知られるいくつかのクラスのうちの最初のクラスです。Java では、コレクションは非常に幅広く便利なトピックであるため、CodeGym のクエスト全体がコレクションに当てられます。
コレクションの構造とそのすべてのニュアンスを完全に理解するには、まず OOP、インターフェイス、継承、マルチスレッドの基本などを学ぶ必要があります。
したがって、今日は最も単純な種類のコレクションについて説明します。ただし、使い方や仕組みを理解するには十分なレベルです。さて、ArrayList
コレクションをご紹介します。
裏話
少し背景から始めます。プログラマーは配列の 1 つの側面、つまりサイズを変更できないという事実を本当に好みませんでした。さらに 3 つの要素を配列に保存する必要があるが、空のセルが 1 つしかない場合はどうすればよいでしょうか?
配列のスペース制限に対する唯一の解決策は、保存する必要があるすべての要素を収容するために非常に大きな配列を作成することでした。しかし、これは通常メモリの無駄でした。通常、配列に 2 つまたは 3 つの要素が含まれているが、100 個の要素を格納する必要がある可能性がわずかでもある場合は、100 個を格納できる容量を持つ配列を作成する必要があります。
では、プログラマーは何を思いついたのでしょうか? 彼らはArrayList
、クラスと同じ働きをするクラスを作成しましたArray
が、サイズは変更可能でした。
ArrayList クラス
クラスの名前は、ArrayList
Array + List という 2 つの単語で構成されます。Array
は配列であり、List
はリストです。
各ArrayList
オブジェクトには通常の要素配列が含まれています。から要素を読み取るとArrayList
、オブジェクトは内部配列から要素を取得します。要素を書き込むと、内部配列に要素が書き込まれます。
ArrayList クラスには、配列の持つ欠点がすべてありません。それは以下の方法を知っています:
- 特定のタイプの要素を保存する
- リストのサイズを動的に変更する
- リストの最後に要素を追加します
- リストの先頭または途中に要素を挿入します
- リスト内の任意の場所から要素を削除します
詳細については、以下を参照してください。
2.ArrayList
オブジェクトの作成
オブジェクトを作成するにはArrayList
、次のようなコードを記述する必要があります。
ArrayList<TypeParameter> name = new ArrayList<TypeParameter>();
ここでArrayList
、 はコレクションのタイプ/クラス、TypeParameter
はコレクションに格納されている要素のタイプArrayList
、は変数name
の名前ですArrayList<TypeParameter>
。
変数name
にはジェネリック型があります。これは 2 つのタイプで構成されます。最初にコレクションのタイプが示され、次に山かっこを使用してコレクションに格納されている要素のタイプが示されます。
例:
コード | 説明 |
---|---|
|
整数のリスト |
|
文字列のリスト |
|
実数のリスト |
配列とは異なり、コレクションにはプリミティブ型は保存できず、参照型のみが保存されます。したがって、 のコレクションが必要な場合はint
、Integer
代わりにラッパー クラスを使用してください。
3. での操作ArrayList
最初は、新しく作成されたリストには要素が含まれていないため、長さはゼロです。リストに要素を 1 つ追加すると、その長さは 1 増加します。追加した要素を削除すると、長さはゼロに戻ります。
次の表では、クラスのメソッドについて詳しく説明しますArrayList
。
メソッド | 説明 |
---|---|
|
渡された要素をリストに追加します |
|
リスト内の特定の場所に要素を追加します。 |
|
インデックスが次の要素を返します。index |
|
value インデックスが次の要素に代入します。index |
|
インデックスが である要素を削除しますindex 。削除された要素を返します。 |
|
メソッドに渡す要素を削除します。このような要素が複数ある場合は、最初の要素が削除されます。 |
|
リストをクリアします。つまり、リストからすべての要素を削除します。 |
|
リストに が含まれているかどうかを確認しますvalue 。 |
|
リストが空かどうかを確認します。言い換えれば、リストの長さがゼロかどうかです。 |
|
リストのサイズ、つまりリスト内の要素の数を返します。 |
|
リストの要素を含む配列を返します。 配列をメソッドに渡す必要があります。 |
これらのメソッドを使用すると、要素の交換、要素の追加、要素の削除など、リストに対して行うことのほとんどすべてを行うことができます。1 つのコマンドでリストをクリアしたり、リストを配列に変換したりすることもできます。
ArrayList
4.との比較Array
ArrayList
比較と配列を避けることはできないと思います。
配列を使用して実行できるアクションは 4 つだけです。
- 配列を作成する
- インデックスで要素を取得する
- 要素をインデックスで設定する
- 配列の長さを取得する
配列とに適用されるこれらの操作は次のとおりですArrayList
。
配列 | 配列リスト |
---|---|
|
|
|
|
|
|
|
|
ArrayList
の動作と配列の動作を比較してみましょう。たとえば、「キーボードから 10 個の文字列を読み取り、逆順に画面に表示する」というタスクを実装してみましょう。
配列の使用 | ArrayList の使用 |
---|---|
|
|
このアナロジーは明らかです。配列の場合は、すべてがどういうわけか短く、明確になります。しかしArrayList
、それも難しいことではありません。要素を取得するには、get()
メソッドを使用します。要素、メソッドを変更するにはset()
。リストの長さを取得するsize()
メソッド。
では、なぜプログラマーはこのArrayList
クラスを使用するのでしょうか?
もちろん、重要なのは、通常の配列にはない他のすべてのメソッドです。
- リストに要素を追加する
- リストの中央に要素を追加します
- リスト内の要素を検索する
- リストからの要素の削除
GO TO FULL VERSION