2011-01-01 15 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の時間をOがかかります(N) – adamax

+0

は、合意されました。だから、「ListIterator」が良いだろう;) –

9

hasPrevious()previous()を使用して、リストを反復処理するListIteratorを使用します。

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

関連する問題