Я делаю программу для задания, где у меня есть список кандидатов (для выборов), и я занимаюсь вставкой, написав метод поиска конкретного человека в массиве и непосредственно перед он, вставить нового человека.Проблема с индексом поиска элемента массива
public static void insertCandidate(Candidate[]list , String find, String candidate, int votes)
{
int location = 0;
for (int i =0; i < list.length; i ++){
String temp = list[i].returnName();
if (temp.equals(candidate)){
location = i;
}
}
for (int index = list.length - 1; index > location; index --){
list[index] = list[index - 1];
}
list[location ] = new Candidate(candidate, votes);
}
}
Проблема, с которой я столкнулся, заключается в первой части, с циклом for. Я хочу, чтобы целочисленное местоположение было индексом, в котором выбран выбранный кандидат, но поскольку местоположение установлено внутри цикла for, его значение остается равным 0 для второго цикла. В результате человек, которого я хочу вставить, вставлен в самый верх списка, а не перед человеком, которого я хочу.
Я не уверен, как пройти мимо этой проблемы, поэтому помощь будет оценена.
'location' установлен до тех пор, пока' кандидат' находится в списке. –
Вы пытаетесь вставить новое значение или перезаписать существующий? Вы должны посмотреть на это: http://stackoverflow.com/questions/586182/insert-item-into-array-at-a-specific-index –
Пожалуйста, выберите правильный ответ – Ungeheuer