2016-05-02 1 views
0

私は、ベクトルのすべての要素を指定された値に設定し、NEWベクトルの長さを指定するプログラムを作成しています。ユニフォームセットメソッドが動作しない

public static Vector uniform(int length, long value) { 

    Vector vector = new Vector(length); 

    for (int i = 0; i < length; i ++) { 
     vector.elements[i] = this.value; 
    } 
    return this.vector; 
} 

しかし、このプログラムを実行すると、ベクトル内のすべての数字は、しかし、それは、配列自体内の整数の数を変更しません指定された値に設定されています。これは、これまでの私のコードです。これを示すためにコードを修正するにはどうすればよいですか?

+0

'vector.elementsなし' elements'プロパティが存在しないので、[i]は 'さえも、プライベート/保護されていない、コンパイルべきではありません。これが完了すると、そのように、生成されたベクトルを返します1。代わりに 'vector.add(value)'を意味すると思います( 'new Vector(length)'は最初の_capacity_の 'length'を持つベクトルを作成します - 構築後も空です)。 'Vector'はかなり古いですが、代わりに' ArrayList'を使わないのはなぜですか? – Thomas

+0

共通の組み込み型と同じ名前を付けないようにしてください。 'Vector'は組み込みのクラスです。あなた自身が持っているので、修正する必要があるものを知る方法はありません。 –

+0

'uniform'は他の新しいVectorを作成します。これは誤解かもしれませんか?別の発言:長いi.oを使いましょう。長い、おそらく 'ブール計算された;と。ロングはボクシング/アンボクシングの必要性と、ヌルチェックの可能性のためにはるかに遅いです。 –

答えて

0

均一コードでは、Vector vectorを新しく作成し、vectorのすべての要素を通過するループを作成し、各要素にコンストラクタの指定された値を割り当てる必要があります。

Vector vector = new Vector(length); 

for (int i = 0; i < length; i++) { 
    vector.elements[i] = value; 
} 

return vector;