我得到ArrayList:
ArrayList logs;
for(Logs log : getLogs()){
logs.add(log.getName();
}
Run Code Online (Sandbox Code Playgroud)
我怎么能以相反的顺序得到这个列表?
使用类的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);
Run Code Online (Sandbox Code Playgroud)
如果你想要一个新的列表,创建一个新的列表,通过使用addAll和最后反转那个列表来添加所有元素.
尝试使用add(int index, E element).
ArrayList logs;
for(Logs log : getLogs()){
logs.add(0,log.getName());
}
Run Code Online (Sandbox Code Playgroud)
这将始终将元素作为第一个元素插入,而不是将其附加到列表的末尾,以便您的列表被反转。
for ( int i = logs.size() - 1; i >= 0; --i )
// do something with logs.get( i )
;
Run Code Online (Sandbox Code Playgroud)
不要浪费时间来反转你可以按相反顺序迭代的东西。
更新:listIterator 也可以按相反的顺序使用,并且是更通用的解决方案:
for ( ListIterator< Logs > lit = logs.listIterator( logs.size() ); lit.hasPrevious(); )
// do something with lit.previous()
;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6956 次 |
| 最近记录: |