動的配列の作成方法を教えてください..!! プリミティブ配列は次のように宣言できます。
int[] myIntArray = new int[3];
しかし、今回は配列のサイズが3要素であることはわかっていますが、動的配列を作成したい場合はどうすればよいのでしょうか。アドバイスしてください。
動的配列の作成方法を教えてください..!! プリミティブ配列は次のように宣言できます。
int[] myIntArray = new int[3];
しかし、今回は配列のサイズが3要素であることはわかっていますが、動的配列を作成したい場合はどうすればよいのでしょうか。アドバイスしてください。
配列は、常に特定のサイズで初期化する必要があります。「動的な」コレクションが必要な場合はリストを使用し、必要に応じて配列に変換します。インスタンス化後に配列のサイズを変更することはできませんが、リストは可能です (変更不可能なリストは無視されます)。
変数を使用して配列をインスタンス化できますが、インスタンス化されると、配列はそのサイズでスタックします。
int[] myArrayInt = new int[arraySizeVariable];
本当に動的なものが必要な場合は、代わりにArrayListを使用することをお勧めします。
List<Integer> myArrayList = new ArrayList<Integer>();
ArrayList は動的に拡大および縮小できます。
ArrayList<Integer> list = new ArrayList<Integer>();
//...
list.add(5);
list.add(1);
//...
int index = list.indexOf(5);
list.remove(index);
Javaでは、あらゆる種類の動的な要素グループを持つことができます。基本的な配列[]は、他の同様の言語と同じように静的であるため、Collection.javaインターフェイスの実装を使用する必要があります。
最も基本的なものは、必ずしも同じクラスではないいくつかのオブジェクトを含む単純なベクターであり、アイテムを追加または削除すると動的に成長します。それらを注文したい場合は、List.javaの実装を使用できます。コレクションを一意にしたい場合は、Set.javaのインスタンスを使用できます。
java.lang.reflect.Array を使用する
public static Object newInstance(Class<?> componentType, int length) {}
public int[] createArray(int size){return new int[size];}
まあ、それはばかげたコードです。必要なサイズの配列を作成します。一度作成すると拡張できません。そのためには、古い配列がいっぱいになったときに、より大きな配列にコピーして手動で拡張する必要があります。ArrayList
または、あるしきい値に達すると容量が 2 倍になる、というコレクションによってそれを実行することをお勧めします。
独自の展開可能な配列を実装する場合、ArrayList を使用するのと同じになります:を参照してください。
各 ArrayList インスタンスには容量があります。容量は、リスト内の要素を格納するために使用される配列のサイズです。常に少なくともリスト サイズと同じ大きさです。要素が ArrayList に追加されると、その容量は自動的に増加します。成長ポリシーの詳細は、要素の追加には一定の償却時間コストがあるという事実以外は指定されていません。