0

入力した整数の配列をベクトルに変換して、結果を出力しようとしています。私はグーグルを検索し、すべての例で「(Arrays.asList(randomArray)」を使用しています。しかし、コンパイルしようとすると、「シンボルが見つかりません-コンストラクターVector(java.util.list)」が表示されます。正しいコードは何ですか。配列をベクトルに変換するには?

これが私のコードです:

Scanner inputNumber = new Scanner(System.in);
System.out.println("How big would you like the vector to be?");
int vecSize = inputNumber.nextInt();
int [] vecArray = new int[vecSize];
int [] primeArray = new int[vecSize];
System.out.println("Please enter " + vecSize + " postive numbers please: ");

for (int i = 0; i < vecSize; i++)  {
    int arrayInput = inputNumber.nextInt();
    if (arrayInput > 0){
    vecArray[i] = arrayInput;
    }
}
Vector<Integer> arrayToVec = new Vector<Integer>(Arrays.asList(vecArray));
4

3 に答える 3

3

問題は、配列がではなく、Integer[]Javaint[]がこれら2つのタイプ間で変換できないことです。

intbyを置き換えるか、から値を(別のループを使用して)新しいInteger値にコピーし、それをベクトルにフィードすることができます。int[]Integer[]

あなたのコードでは、最後のステートメントはすべてのint[]オブジェクトをベクターにコピーしようとしますが、配列から値を自動的に受信してコピーすることを望んでいました。しかし、そうではありません。

ところで、エラーメッセージはヒントを与えます:

コンストラクターVector<Integer>(List<int[]>)は未定義です

代わりにコンストラクターを使用することを期待していたため、Vector<Integer>(List<Integer>)Javaはエラーメッセージからコンストラクターを探すことにしました。

于 2013-01-10T06:24:49.520 に答える
1

問題は、プリミティブ型(int)の配列があることです。これは、ではうまく機能しませんArrays.asList()Arrays.asList(vecArray)実際には、List<int[]>1つの要素(配列)を含むを返します。

最も簡単な修正は、手動でベクターにデータを入力することです。

Vector<Integer> arrayToVec = new Vector<Integer>();
for (int i : vecArray) {
    arrayToVec.add(i);
}
于 2013-01-10T06:28:42.610 に答える
0

プリミティブではなくvecArrayタイプである必要があります。Integerint

Integer [] vecArray = new Integer[vecSize];
于 2013-01-10T06:28:47.780 に答える