どのようにそれからループ作業内外作成された配列を作るには?

グスタボ・アゼベド・コレア:

私は別のソートアルゴリズムをテストするために、Javaプロジェクトをやってるし、ベクトルの異なる型付きを使用するために必要とされます。

私はループ内に宣言する必要があるので、私は、コードwhithinベクトルの種類を決定します。これは、配列の範囲のエラーを生成しています。類似またはこのエラーを解決する何かを作るためにとにかくありますか?

私は日食2020上だし、ここでエラーが発生しているコードは次のとおりです。

if(TypeOfVector(desorganized) == -1) {
    int[] organizedVector = PassingToIntVector(desorganized);}
if(TypeOfVector(desorganized) == 0) {
    float[] organizedVector = PassingToFloatVector(desorganized);}
if(TypeOfVector(desorganized) == 1) {
    double[] organizedVector = PassingToDoubleVector(desorganized);}
int organized = 0;
int duo;
int n = desorganized.size();
while(organized != n-1) {
    organized = 0;
    for (duo = 0; duo < n - 1; duo ++) {
        if(organizedVector[duo] > organizedVector[duo + 1]) {
            organizedVector[duo] = organizedVector[duo] - organizedoVector[duo +1];
            organizedVector[duo +1] = organizedVector[duo + 1] + organizedVector[duo];
            organizedVector[duo] = organizedVector[duo + 1] - organizedVector[duo];
        }
        else organized ++;
}

そして、ここでPassingToの機能の一つの例です。

public float[] PassingToFloatVector(ArrayList<Object> list) {
        Object[] array = list.toArray();
        float[] desorganized = new float[list.size()];
        for(int i = 0; i < list.size(); i++) {
            desorganized[i] = (float) array[i];
        }
        return desorganized;
マット:

あなたはおよそ求めているという最初の問題は、スコープです。あなたは続行するためにスコープを使用して変数を宣言する必要があります。

if(TypeOfVector(desorganized) == -1) {
    int[] organizedVector = PassingToIntVector(desorganized);
}
if(TypeOfVector(desorganized) == 0) {
    float[] organizedVector = PassingToFloatVector(desorganized);
}

あなたがもし、ブロック内のあなたの配列を宣言していると、彼らは失われますので、あなたがもしブロックを離れるとこれを変更する必要があります。つまり彼らは、スコープの外に行きます。

int[] organizedVector;
if(TypeOfVector(desorganized) == -1) {
    organizedVector = PassingToIntVector(desorganized);
}
if(TypeOfVector(desorganized) == 0) {
    organizedVector = PassingToFloatVector(desorganized);
}

これは入れますorganizedVector、より大きな範囲で、あなたはif文の後にそれを使用することができますが、あなたはフロートにそれを割り当てることはできません[]、その文は失敗します場合は、2番目。固執考えてみましょうList<Integer>List<Float>List<Double>すべてですList<? extends Comparable>

その後、要素を比較し、必要に応じてcollections.swapでそれらを交換することができます。プリミティブ配列は交換できませんので注意してください。あなたは、3つの異なる配列型を処理するコードの三つの異なるブロックを記述する必要があります。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=374780&siteId=1