Javaの動的配列とは何ですか?



Javaの動的配列は、自動サイズ変更が大幅に改善された配列の一種です。配列の唯一の制限は、固定サイズであることです。

の配列 Javaでオブジェクトとして実装された同種のデータ構造です。配列は、特定のデータ型の1つ以上の値を格納し、同じデータ型を格納するためのインデックス付きアクセスを提供します。配列内の特定の要素は、そのインデックスによってアクセスされます。この記事では、Javaの動的配列について次の順序で説明します。

Javaでの動的配列の概要

動的配列は、自動サイズ変更が大幅に改善されたタイプの配列です。配列の唯一の制限は、固定サイズであることです。これは、配列が事前に保持できる要素の数のみを指定できることを意味します。一方、動的配列は、リアルタイムで要素を追加するにつれて拡張できます。したがって、コーダーは事前に配列のサイズを決定する必要はありません。さらにいくつかの長所もあります。





Tableauデータブレンディング左結合
  • クイックルックアップ 。配列と同じように、特定のインデックスで要素を取得する場合、O(1)時間がかかります。



  • 可変サイズ 。必要な数の要素を挿入でき、それに応じて動的配列が拡張されて要素を保持します。

  • キャッシュフレンドリー 。配列と同様に、動的配列はアイテムをメモリ内に並べて配置できるため、キャッシュを効率的に利用できます。



コードで動的配列を使用することには、いくつかの欠点があります。ほとんどのアプリケーションでは何よりも動的配列を使用していますが、その制限のために動的配列が最も好ましい選択肢にならない場合があります。

  • 最悪の場合の追加が遅い 。通常、動的配列の最後に新しい要素を追加すると、1つのインスタンスでO(1)が必要になります。ただし、動的配列に新しいアイテムのインデックスがもうない場合は、展開する必要があり、一度にO(n)が必要になります。

    ソルトスタックvsパペットvsシェフ
  • コストのかかる挿入と削除。 配列と同様に、要素は互いに隣接して格納されます。したがって、配列の中央にあるアイテムを追加または削除するときは、他の要素をプッシュする必要があり、一度にO(n)が必要になります。

次の図は、配列がリアルタイムでどのように機能するかを示し、要素がどのように積み重ねられるかを示しています。また、配列関数の平均的なケースと最悪のケースで命令がどのように変化するかも示しています。

配列-Javaの動的配列-edureka

サイズと容量

動的配列を初期化すると、動的配列の実装により、理解できる固定サイズの配列が作成されます。初期サイズは実装に対応しています。たとえば、10個のインデックスを使用するように実装配列を作成しましょう。次に、動的配列に4つの項目を追加します。現在、動的配列の長さは4です。ただし、基になる配列の長さは10です。したがって、動的配列のサイズは4、容量は10と言えます。動的配列は特定の終了インデックスを格納して、動的配列の終了点と開始点を追跡します。追加容量が始まるポイント。

倍増

容量がすでにいっぱいになっている配列にアイテムを追加しようとする場合があります。したがって、部屋の動的配列を作成するには、新しい、より大きく、基礎となる配列を自動的に作成します。通常、以前は予期していなかった新しい追加を処理するのに2倍の大きさになります。したがって、各アイテムをコピーするのに時間がかかりません。動的配列にアイテムを追加すると、自動的に新しいダブルサイズの基になる配列が作成されます。この追加には時間がかかりません。

要素の削除

配列から要素を削除する際、デフォルトの「remove()」メソッドは要素を最後から削除し、最後のインデックスに自動的にゼロを格納します。また、「I」がインデックスであるremoveAt(i)メソッドを呼び出すことにより、特定のインデックスの要素を削除します。 removeAt(i)メソッドは、左側のすべての右側の要素を指定されたインデックスからシフトします。

配列のサイズ変更

配列の右側に不要なメモリを使用するデータがない場合、メソッドsrinkSize()は余分なメモリを解放します。すべてのスロットが消費され、要素が追加されると、基になる固定サイズの配列のサイズを増やす必要があります。最終的に新しいアイテムを追加する前に、より大きな配列を割り当て、大きくなりすぎた配列からすべての要素をコピーして転送する必要があるため、実際のサイズ変更にはコストがかかります。

以下は、配列サイズがいっぱいになり、新しい要素が新しいダブルサイズの配列にコピーされるプログラムの例です。 「マハヴィーラ」と呼ばれる文字列要素である要素は、サイズ3のすでに完全な配列への追加です。

PHPの設定方法
import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main(String args []){Scanner sc = new Scanner(System.in)System.out.println( '配列のサイズを入力してください:: ')int size = sc.nextInt()String myArray [] = new String [size] System.out.println('配列の要素を入力してください(Strings):: ')for(int i = 0 i

出力:

これで、Javaの動的配列の記事は終わりです。動的配列を操作する方法を理解していただければ幸いです。

チェックしてください 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaのJavaJ2EEおよびSOAトレーニングおよび認定コースは、Java開発者になりたい学生および専門家向けに設計されています。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

質問がありますか?この「Javaの動的配列」ブログのコメントセクションでそれについて言及してください。できるだけ早くご連絡いたします。