如何使用List降序?

时间:2013-08-30 03:13:35

标签: java jsp servlets

我有一个列出所有记录的代码。但我希望它是降序。继承我的代码:

<%
ChangeRequestDetails changeRequestDetails = new ChangeRequestDetails();
List<ChangeRequestBean> changerequestlistchangeRequestDetails.getAllChangeRequests();
%>
<table>
    <tr>
       <th>Id</th>
       <th>Requestor</th>
   <th>Description</th>
   <th>Category</th>
   <th>Type</th>
   <th>Priority</th>                        
       <th>Approval</th>
    </tr>
    <%
for (ChangeRequestBean changerequest: changerequestlist) {
%>
    <tr class="gradeB">
    <td><%=changerequest.getChangerequestid()%></td>
    <td><%=changerequest.getUserdivisionid()%></td>
    <td><%=changerequest.getDefchangerequest()%></td>
    <td><%=changerequest.getCategory()%></td>
    <td><%=changerequest.getChangerequesttype()%></td>
    <td><%=changerequest.getChangerequestpriority()%></td>
    <!--<td><%=changerequest.getDatestamp()%></td>-->
    <td><%=changerequest.getApproval()%></td>
            </tr>
    <%}%>
</table>

请帮助,我希望它按降序排列,因为我想看到最近添加的记录。谢谢你们。

2 个答案:

答案 0 :(得分:1)

如果您的列表已按升序添加,则可以使用ListIterator以相反的顺序迭代

<%
ListIterator<ChangeRequestBean> iterator = changerequestlistchangeRequestDetails.listIterator(changerequestlistchangeRequestDetails.size());
while (iterator.hasPrevious()) {
    ChangeRequestBean changerequest = iterator.previous();
%>
...
<%
}
%>

在这种情况下,您无需在每次需要更改订单时撤消列表。

如果您之前需要对列表进行排序,可以使用Collections.sort使用指定的Comparator对bean进行排序。在这种情况下,您可以使用不同的比较器使用不同的排序规则对列表进行排序。

答案 1 :(得分:0)

如果尚未完成,请在ChangeRequestBean中实现Comparable inerface。

根据您的需要更改public int compareTo(ChangeRequestBean bean)代码将根据changerequestid进行排序。

    class ChangeRequestBean implements Comparable<ChangeRequestBean> {

        public int compareTo(ChangeRequestBean  bean) {
             return this.changerequestid   - bean.changerequestid ;
        }       
    }

使用以下代码对列表进行反向排序。

  Collections.reverse(changerequestlist);