2014-09-10 2 views
0

У меня есть код, который берет имя и номер пользователя и сохраняет их в объекте arraylist.добавление счетчика в расширенном для цикла

Я использую это расширение для цикла, чтобы распечатке все имя и номер, который хранится в этом ArrayList ...

for(Objectclass p : Test) { 
    System.out.println("Name: " + p.getName() + " Number: " + p.getNumber()); 
    } 

печатает как Имя: бла-бла Номер: бла

теперь я хочу добавить номер счетчика перед именем и номером, как 1.Name: blah blah Номер: blah blah 2.Name ... number 3.Name ... number

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

+0

Мое мнение таково, что если вам нужен индекс, вы должны придерживаться старого 'for' цикла с индексной переменной. – Joffrey

ответ

4

Сделать переменную счетчика, объявленную вне расширенного цикла.

int i = 0; 
for(Objectclass p : Test) { 
    System.out.println(++i + ". Name: " + p.getName() + " Number: " + p.getNumber()); 
} 

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

for(int i = 0; i < Test.size();){ 
    Objectclass p = Test.get(i++); 
    System.out.println(i + ". Name: " + p.getName() + " Number: " + p.getNumber()); 
} 
+0

Другим способом избежать «бесполезной переменной» было бы обернуть еще один блок вокруг всей партии для локального охвата - '{int i = 0; for (...) {...}} ' –

+0

@IanRoberts Ну, если вам нужен индекс, то придерживаться старого метода IMHO намного проще и читабельнее. – Joffrey

+0

, и если я хочу распечатать номер индекса вместо счетчика, как я могу это сделать? – jtfkyo

0

Это должно работать:

int i = 0; 
for(Objectclass p : Test) 
{ 
    i++; 
    System.out.println(i + ". Name: " + p.getName() + " Number: " + p.getNumber()); 
} 

К сожалению, не существует никакого способа извлечения индекса итерации из расширенного для цикла.

0

вы могли бы попробовать -

for(Objectclass p : Test) { 
    System.out.println("Index: " + Test.indexOf(p+1) + "Name: " + p.getName() + " Number: " + p.getNumber()); 
} 
+0

Можете ли вы объяснить, что вы добавили? (И я думаю, что у вас есть +1 в неправильном месте) – Rup

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