2016-10-19 3 views
1

Я использую следующий метод для выполнения линейного поиска на массиве:Зачем использовать пустую строку в Linear Поиск программы Java

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 + " ". Я не понимаю цели выполнения этих двух вещей.

Примечание: Элементы массива генерируются случайным образом.

Выход: enter image description here

ответ

1

Вам не нужно. Это просто для вывода.

indexsWithValue+= i + " "; 

убедитесь, что вы объединяете все индексы, которые соответствуют.

Ваш результат будет таким.

i1 i2 i3 ....

где i1, i2, ... найдены спички.

1

вам это не нужно. В вашем коде у вас есть «нет» в результате, если у вас нет предоставленного ключа в массиве.

Итак, вы объявляете его как строку по умолчанию.

+0

Почему это индексыWithValue + = i + "", а не indexsWithValue = i + ""? –

+1

, если имеется более одного входа ключа в предоставленном массиве! –