2012-11-06 2 views
0

Что было бы лучшей практикой и решением для проверки «Индекс за пределами границ» Следующее решение работает, но чувствует себя довольно взломанным. Есть ли лучшие альтернативы?Далее в массиве и индексе за пределами

public void nextPerson(int index){ //Index is the current location in the arraylist 
    try{ 
     System.out.println(thePeople.get(index++)); 
    } 
    catch (IndexOutOfBoundsException e){ 
     System.out.println("At the end"); 
    } 
} 

ответ

0

я понял, что при наличии локальная переменная для отслеживания индекса Arraylist. Я смог вместо этого иметь 2 метода обработки движущейся мысли ArrayList. С одним для текущей позиции для вывода.

if(arrayPosition < thePeople.size() - 1) 
0

EDIT: Java передается по значению. Это означает, что если вы передадите переменную «индекс» в функцию, на внешние переменные не повлияют изменения, выполняемые внутри функции.

Таким образом, вы должны держать указательный вар класса Scoped, как список ...

public void nextPerson(){ 
    if (index>=0 && index<thePeople.size()) 
     System.out.println(thePeople.get(index++)); 
    } else { 
     System.out.println("At the end"); 
    } 
} 

ИЛИ передать его и вернуть его

public int nextPerson(int index){ 
     if (index>=0 && index<thePeople.size()) 
      System.out.println(thePeople.get(index++)); 
     } else { 
      System.out.println("At the end"); 
     } 
     return index; 
    } 

То же самое было бы для previouPerson , просто используйте index--;

Кстати, если вы держите индекс в потребительском классе, за пределами этого объекта, вы можете получить весь список и итерацию по ней в классе потребителей ...

+0

С вашим решением, какой был бы правильный способ иметь метод previousPerson? – Melky

+0

Точно так же, но с 'index -' ... я предлагаю вам опубликовать большую выдержку из вашего кода, чтобы посмотреть, можно ли немного его переконфигурировать –

+0

. Моя правильная мысль заключалась в использовании 'index -', но это не сработало. 'private ArrayList thePeople;' У меня есть только базовый конструктор, в который я добавляю их в массив. – Melky

Смежные вопросы