Использование Iterator в Java - PullRequest
       8

Использование Iterator в Java

0 голосов
/ 28 сентября 2011

У меня есть список типов объектов, например

List<Object> getRecords = records.getAllRecords();
ArrayList<String> recordsDetail = new ArrayList<String>();
recordsDetail = this.getRecordsDetail(getRecords.get(3));
model.addAttribute("recordsDetail", getRecords.get(3));

Но когда я пишу такой метод, как

ArrayList<String> getRecordsDetail(Object records) {

}

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

Любая помощь будет оценена.Спасибо

Если я делаю то же самое в JSP с использованием Spring MVC, он работает нормально, как

<c:forEach var="sData" items="${recordsDetail}">
        <tr>
            <td>
                <table border="0">
                    <c:forEach var="sValues" items="${sData}" varStatus="colNo">
                        <c:choose>
                            <c:when test="${colNo.count> 5 and colNo.count<9}">
                                <tr>
                                    <td>${sValues}&nbsp;&nbsp;</td>
                                <tr>
                            </c:when>
                        </c:choose>
                    </c:forEach>
                </table>
                <hr>
            </td>
        </tr>
    </c:forEach>

Но я хочу выполнить эту обработку в контроллере MVC Spring и отобразить окончательные результаты в JSP.Поэтому я не могу найти способ, которым я могу перебрать records в классе контроллера.

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Несколько вещей.

Во-первых, не инициализируйте локальную переменную, а затем немедленно установите для нее значение. Вместо этого просто инициализируйте желаемое значение (обратите внимание на тип List, а не тип ArrayList, что является хорошей практикой или, возможно, просто моим предпочтением).

List<String> recordsDetail = this.getRecordsDetail(getRecords.get(3));

Далее, итерация по records

List<String> getRecordsDetail(Object records)
{
  if (records instanceof Vector)
  {
    Object blam;
    Iterator iterator;
    Vector recordVector = (Vector)records;

    iterator = recordVector.iterator();
    while (iterator.hasNext())
    {
      blam = iterator.next();
      // do something with blam.
    }
  }
}

Я не знаю тип элементов записей, поэтому я использовал Object, если вы знаете тип, тогда используйте его вместо Object.

0 голосов
/ 28 сентября 2011

Это должно быть

ArrayList<String> getRecordsDetail(List<Object> records) {

}

Если вы можете более точно определить тип объекта, возвращаемого records.getAllRecords(), вам следует использовать List<the-object-type-returned-by-getAllRecords>.

...