CodeGym /Java Blog /ランダム /Java での配列から ArrayList への変換
John Squirrels
レベル 41
San Francisco

Java での配列から ArrayList への変換

ランダム グループに公開済み
やあ!今日のレッスンでは、Java で配列を初期化する方法と配列を配列リストに変換する方法について説明します。配列は Java の Container クラスの拡張であり、データ量が具体的にわかっている場合に、プリミティブ データ型のセットを一時的に保持する方法として役立ちます。ただし、配列は作成時には静的であるため、作成時に保持する項目の数を変更することはできません。Java で配列を初期化する方法を覚えておく必要があります。それは次のようになります:

datatype[] isArray;
ここで、datatype は、int、float、long、または String などのプリミティブ データ型です。次のように宣言の後に括弧を置くこともできます。

datatype isArray[];
では、設定された数の要素を持つこの静的配列をどのように取得して ArrayList に変換するのでしょうか? さて、まず ArrayList とは何かを見てみましょう。

配列リスト

ArrayList は Array と似た名前を持つ場合がありますが、処理方法はまったく異なります。これは、ArrayList が Container クラスを拡張するのではなく、List クラスを拡張するためです。そしてそれは、すべてが異なる方法で処理されることを意味します。まず、これはリストであるため、別の方法で操作できます。add(element)を使用すると、ArrayList のサイズを増減できます。これにより、要素が List の最後に配置され、必要に応じてサイズが 1 つ増加します。または、 trimToSize() を使用することもできますこれにより、末尾の空のインデックスが削除され、ArrayList が現在のサイズにトリミングされます。したがって、単なる配列の代わりに ArrayList を使用することにはいくつかの利点があることがわかります。次に、Array から ArrayList に変換する 2 つの方法と、必要に応じて元に戻す方法を説明します。

Java での配列から ArrayList へ、および ArrayList から配列への移動

そこで、会社がキャットツリーを修理するためにいくつのナットとボルトを在庫しているかを管理するプログラムを作成したとします。何年もの間、必要なのは 30 種類だけだったので、配列を使用して追跡するだけで簡単でした。しかし、今度は追加の 5 種類の在庫を要求する新しい顧客がいます。プログラムを変更してすべてのデータを保持し、別のクライアントを迎えたときに同じ操作を再度行わなくて済むようにするにはどうすればよいでしょうか? それは正しい!配列リスト!では、Java 配列を ArrayList に変換するにはどうすればよいでしょうか? 方法は 3 つあります。.asList()メソッドの使用Java 配列には、 .asList()という API を見るとわかる優れたツールがあります。したがって、次のように書くことができます。

boltInventory.asList(bolts);
このメソッドの問題は、真の ArrayList が作成されないことです。これは、サイズが固定され変更できないリストを作成することです。したがって、サイズを動的に変更することはできません。要素を追加または削除しようとすると、例外が発生します。したがって、これには用途がありますが、真の変換ではありません。しかし、これは使えます。.asList()を引数として使用するこれは、Java で配列をリストに変換する 2 番目の方法です。.asList()メソッドは List を作成するため、それを使用して実際の ArrayList への参照を渡すことができます。ArrayList を初期化する方法は次のとおりです。

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
これにより、10 個の空のセルを含む ArrayList が作成されます。ただし、最後の() を使用して ArrayList に入力する引数を渡すことができます。したがって、.asListメソッドと組み合わせると、次のようになります。

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
これにより、 .asList()メソッド によって作成された List がArrayList に渡されるため、必要に応じて動的に操作できるようになります。Collections.addAll()メソッドの使用Java で Array を ArrayList に変換するもう 1 つの方法は、このメソッドを使用することです。Array の内容を ArrayList に渡します。このメソッドの一般的な構文は次のとおりです。

Collections.addAll(c, T);
ここで、cは宛先、Tは渡されるものです。したがって、この例では、構文は次のようになります。

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
これにより、配列ボルトの内容全体が新しい ArrayList に渡されます。ArrayList から Array への変換 Java では、ArrayList を Array に変換する必要がある場合があります。そうする場合、ArrayList にはメソッド.toArray(a)が含まれます。ここで、 a は宛先です。したがって、この例の構文は次のようになります。

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
このように Java でリストを配列に変更すると、ディープコピーが作成されます。つまり、Array への参照はすべて ArrayList への参照とは異なります。したがって、ArrayList に格納されているデータを変更せずに、Array 内のデータを操作できます。データをテストする必要がある場合は、Java リストを配列に変換すると便利です。

結論

配列は、小さなデータ セットの高速アクセスや迅速な操作に非常に役立ちますが、サイズを変更できないため、長期間使用すると効率がすぐに低下します。ArrayList を使用すると、柔軟性が得られ、必要に応じてノードを挿入および削除できます。Java 配列をリストに変換する方法を学ぶと、プログラムの全体的な効率が向上し、実行時間も向上します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION