2011-03-04 14 views
4

値を入力せずに配列を作成できるかどうか疑問に思っていました。私はそれらの仕組みを完全には理解していませんが、私は在庫プログラムを実行しており、ユーザーが製品やその関連する変数を入力するまでの間、アレイを設定してから、メソッドを使用して、すべての製品の総コストを計算します。それを行う最善の方法は何でしょうか?オープンエンド配列を作成することはできますか?

答えて

1

軌道は、あなたのデータストレージ要件のためのArrayListまたはベクターを使用し、指摘したように、彼らが割り当てられるように特定のサイズを必要としません宣言しながら。

3

はい、これを行うことができます。プリミティブ型の配列(例えばnew int[10])を使用する代わりに、Vectorクラスのようなものを使用するか、おそらくArrayList(違いについてはチェックアウトAPIドキュメント)を使用してください。 ArrayListを使用すると、次のようになります。

ArrayList myList = new ArrayList(); 
myList.add("Item 1"); 
myList.add("Item 2"); 
myList.add("Item 3"); 
// ... etc 

つまり、物事を追加すると動的に増加します。

0

他の人が指摘しているように、ArrayListを含むJava Collections Frameworkに精通しているはずです。特定の要件のために、あなたのニーズに合った他のコレクションオブジェクトがあるかどうかを知ることは良いことです。例えば、あなたの "リスト"に重複する要素が含まれていないことを確認したいなら、HashSetが答えかもしれません。

http://download.oracle.com/javase/tutorial/collections/index.html

0

他の答えはすでに右のそれを行う方法を語りました。完全性を期すために、Javaでは、すべての配列は作成時に決定され決して変更されない固定サイズ(長さ)を持ちます。 (配列には決して変更されないコンポーネントタイプもあります)

古い配列がいっぱいになると新しい(より大きな)配列を作成し、古いコンテンツをコピーする必要があります。幸いなことに、ArrayListクラスは、内部バッキング配列が一杯になったときにそれを行います。そのため、実際のビジネスタスクに集中することができます。

関連する問題