#java #for-loop
#java #for-loop
Вопрос:
public void two(final BeanForm[] captureddata)
{
for (BeanForm form : captureddata)
{
if (form.getCyclicType() != null)
{
logger.info("The Cyclic Type is" form.getCyclicType().value());
}
if (form.getTicketType() != null)
{
logger.info("The Ticket Type is" form.getTicketType().value());
}
}
}
Приведенный выше код работает нормально, но результат, который я вижу в файле журнала, является (в случае, если длина формы BEAN равна 2)
11/Nov/2011 20:15:51 - The Cyclic Type is DTI
11/Nov/2011 20:15:51 - The Ticket Type is MMTS
11/Nov/2011 20:15:51 - The Cyclic Type is DTI
11/Nov/2011 20:15:51 - The Ticket Type is MMTS
Я просто хотел знать, возможно ли также получить сведения о массиве, например, к какому массиву принадлежат эти данные
Например
The array[1] Cyclic Type is DTI
The array[2] Cyclic Type is SAG
Комментарии:
1. Вам пришлось бы изменить свой цикл, чтобы использовать индекс. Кстати; индексы массива начинаются с 0, а не с 1.
Ответ №1:
Просто используйте внешний счетчик:
public void two(final BeanForm[] captureddata)
{
int count = 0;
for (BeanForm form : captureddata)
{
if (form.getCyclicType() != null)
{
logger.info(count " The Cyclic Type is" form.getCyclicType().value());
}
if (form.getTicketType() != null)
{
logger.info(count " The Ticket Type is" form.getTicketType().value());
}
count ;
}
}
или как обычный цикл for
public void two(final BeanForm[] captureddata)
{
for (int i=0; i<captureddata.length; i )
{
BeanForm form = capturedata[i];
if (form.getCyclicType() != null)
{
logger.info(i " The Cyclic Type is" form.getCyclicType().value());
}
if (form.getTicketType() != null)
{
logger.info(i " The Ticket Type is" form.getTicketType().value());
}
}
}
Ответ №2:
Если вы имеете в виду индекс в цикле — нет. Вам нужно будет сделать это явно:
for (int i = 0; i < capturedData.length; i )
{
BeanForm form = capturedData[i];
// Now you have both form and i.
}
Ответ №3:
Один из возможных подходов заключается в поддержании счетчика в цикле for, и вы можете использовать счетчик вместе с массивом[], что-то вроде:
int i=0;
for-each loop
{
//print array[i]
//increment i
}
Ответ №4:
public void two(final BeanForm[] captureddata)
{
for (i = 0; i < captureddata.length(); i ) {
BeanForm form = captureddata[i]
if (form.getCyclicType() != null)
{
logger.info("The array[" i "] Cyclic Type is" form.getCyclicType().value());
}
if (form.getTicketType() != null)
{
logger.info("The array[" i "] Ticket Type is" form.getTicketType().value());
}
}
}
Ответ №5:
согласитесь с решением Мэтью, просто используйте другое число для подсчета и сделайте приращение в конце цикла.
однако в файле журнала обратите внимание, хотите ли вы начать с «array [0]» или «array[1]»
Комментарии:
1. Большое спасибо, вы, люди, всегда были полезны, как обычно. этот сайт stackoverflow был раем для разработчиков.