2011-01-01 8 views
3

안녕하세요, 나는 테이블의 pojo 클래스 개체를 포함하는 List 개체를 가져옵니다. 내 경우에는 테이블 데이터를 역순으로 표시해야합니다. 예를 들어, 내가 최근에 추가 될 때 데이터베이스의 특정 테이블에 일부 행을 추가하려고합니다. 데이터가 테이블의 마지막 행에 저장됩니다 (데이터베이스). 여기에서 역순으로 JSP 페이지의 전체 내용을 표시해야합니다. 즉, 최근 삽입 한 JSP 페이지의 첫 번째 행을 표시해야합니다. 당신이 경우 반복자를 사용할 수 없습니다List 객체를 역방향으로 가져 오는 방법은 무엇입니까?

List lst = tabledate.getAllData();//return List<Table> Object 
Iterator it = lst.iterator(); 
MyTable mt = new MyTable();//pojo class 
while(it.hasNext()) 
{ 
    mt=(MyTable)it.next(); 
    //getting data from getters. 
    System.out.println(mt.getxxx()); 
    System.out.println(mt.getxxx()); 
    System.out.println(mt.getxxx()); 
    System.out.println(mt.getxxx()); 
} 

답변

1

처럼

여기

내 코드이었다.

 
int size = lst.size(); 
for (int i=size - 1; i >= 0; i --) 
{ 
    MyTable mt = (MyTable)lst.get(i); 
    .... 
} 

Btw : 루프 앞에 새 MyTable()을 만들 필요가 없습니다. 이것은 즉각적으로 버려지고 목적이없는 인스턴스입니다.

+0

을 그것이 LinkedList의가 있다면,이 회 (N^2) 시간 대신 O (n)은 – adamax

+0

는 합의 O를 취할 것입니다. 그래서 'ListIterator'가 더 좋을 것입니다;) –

9

사용하십시오 ListIteratorhasPrevious()previous()를 사용하여 목록을 반복하는 :

ListIterator it = lst.listIterator(lst.size()); 
while(it.hasPrevious()) { 
    System.out.println(it.previous()); 
} 
+0

제 응답보다 낫습니다.) –

+1

@a_horse OP가 "나쁜"대답을 선택할 때 나는 그것을 좋아합니다. 오 잘. : -/ – marcog

+0

글쎄, 당신의 대답은 틀렸다. ListIterator it = lst.listIterator (lst.size());라고 말해야합니다. – adamax

관련 문제