ArrayList を取得します。
ArrayList logs;
for(Logs log : getLogs()){
logs.add(log.getName();
}
このリストを逆順に取得するにはどうすればよいですか?
reverse
クラスのメソッドを使用してCollections
、リストを逆にします。これはリスト自体に影響することに注意してください。
ArrayList logs = new ArrayList(); //Initialize this list or your
//code won't compile.
for(Logs log : getLogs()){
logs.add(log.getName();
}
Collections.reverse(logs);
新しいリストが必要な場合は、新しいリストを作成し、を使用してすべての要素をリストに追加しaddAll
、最後にそのリストを逆にします。
for ( int i = logs.size() - 1; i >= 0; --i )
// do something with logs.get( i )
;
逆の順序で繰り返すことができるものを逆にする時間を無駄にしないでください。
更新:listIteratorは逆の順序で使用することもでき、より一般的な解決策です。
for ( ListIterator< Logs > lit = logs.listIterator( logs.size() ); lit.hasPrevious(); )
// do something with lit.previous()
;
を使ってみてくださいadd(int index, E element)
。
ArrayList logs;
for(Logs log : getLogs()){
logs.add(0,log.getName());
}
これにより、要素がリストの最後に追加されるのではなく、常に最初の要素として挿入されるため、リストが逆になります。
Java 5の時点で(少なくとも、おそらくもっと早く)、Collectionsライブラリでこれがサポートされています。
Collections.reverse(logs);
コレクションを元に戻す必要はなく、パフォーマンスが低下する可能性があります(サイズによって異なります)。最も自然なJDKの方法は、次のことを行うことlistIterator
です。
for (ListIterator<String> it = list.listIterator(list.size()); it.hasPrevious();) {
...
}