1

次の方法を使用して、配列に対して線形検索を実行しています。

private int[] theArray = new int[50]; 
private int arraySize = 10; 

public String linearSearchForValue(int value){

    boolean valueInArray = false;
    String indexsWithValue = "";

    for(int i = 0; i < arraySize; i++) {
        if(theArray[i] == value) {
            valueInArray = true;
            indexsWithValue+= i + " ";
        }
        printHorzArray(i, -1);
    }

    if(!valueInArray){
        indexsWithValue = "None";
    }

    System.out.print("The Value was Found in the Following: " + indexsWithValue);
    System.out.println();
    return indexsWithValue;
}

// Print Array
public void printHorzArray(int i, int j) {

for(int n = 0; n < 51; n++) {
    System.out.print("-");
}

System.out.println();

for(int n = 0; n < arraySize; n++) {
    System.out.print("| " + n + "  ");
}

System.out.println("|");

for(int n = 0; n < 51; n++) {
    System.out.print("-");
}

System.out.println();

for(int n = 0; n < arraySize; n++) {
System.out.print("| " + theArray[n] + " ");

}

linearSearchForValue メソッドで indexsWithValue、空の文字列に設定する目的は何ですか。if ステートメント indexsWithValue+= i + " ";では、空の文字列が に追加されi + " "ます。この 2 つのことを行う目的がわかりません。

注: 配列要素はランダムに生成されます。

出力:ここに画像の説明を入力

4

2 に答える 2

1

あなたはそれを必要としません。あくまでも出力用です。

indexsWithValue+= i + " ";

一致するすべてのインデックスを連結していることを確認してください。

あなたの出力は次のようになります。

i1 i2 i3 ....

ここで、i1、i2、... は見つかった一致です。

于 2016-10-19T06:05:49.827 に答える
1

あなたはそれを必要としません。コードでは、提供されたキーが配列にない場合、結果として「なし」になります。

したがって、デフォルトで文字列として宣言します。

于 2016-10-19T06:10:29.123 に答える