我在我的項目中使用struts,web服務(其餘)。我使用rest API(getMdmServiceBO()。getLockBO()。getAllActiveUsers();)得到一個hashMap對象(activeUserMap),它存儲在ActiveUserMap中,它再次擴展了一個hashMap的鍵是String,值是ActiveUserVO,如下所示。我的要求是根據loggedInTime進行排序。需要根據值排序自定義哈希映射(登錄時間)
我試圖通過使用比較器接口和linkedHashMap維護秩序,但它不工作。任何人都可以建議我。
public class AdminMgmtAction extends BaseAction {
public ActionForward showActiveUsers(ActionMapping mapping,ActionForm form, HttpServletRequest request,HttpServletResponse response) {
dlog.debug("Executing showActiveUsers method in AdminMgmtAction...");
ActionForward forward = null;
AdminMgmtForm adminMgmtForm = (AdminMgmtForm) form;
try {
// get the active user map
ActiveUserMap activeUserMap = getMdmServiceBO().getLockBO().getAllActiveUsers();
//LinkedHashMap<String, ActiveUserVO> lm = new LinkedHashMap<String, ActiveUserVO>(activeUserMap);
adminMgmtForm.setAllActiveUsersMap(activeUserMap);
adminMgmtForm.setSelectedUidNSessId(null);
return mapping.findForward(AdminConstants.SHOW_ACTIVE_USERS);
} catch (Exception e) {
flog.fatal("System Exception Occured: " + e.getMessage(), e);
return mapping.findForward(MDMConstants.FAILURE);
}
}
}
public class ActiveUserMap extends LinkedHashMap<String, ActiveUserVO> {
/**
* Changed hashMap to LinkedHashMap
*/
private static final long serialVersionUID = 2584709276177374330L;
public ActiveUserMap() {
super();
}
}
public class ActiveUserVO implements Serializable, Comparable<ActiveUserVO>{
/**
* Implement comparable
*/
private static final long serialVersionUID = -6501714930988894286L;
private String sessionId;
private int userId;
private String username;
private String firstName;
private String lastName;
private String emailAddress;
private boolean aquiredLock;
private Date loggedInTime;
public Date getLoggedInTime() {
return loggedInTime;
}
public void setLoggedInTime(Date loggedInTime) {
this.loggedInTime = loggedInTime;
}
@Override
public int compareTo(ActiveUserVO o) {
// TODO Auto-generated method stub
return o.getLoggedInTime().compareTo(this.loggedInTime);
}
}
完美!!邁克爾,它的作品,我真的很感謝你的幫助。 日期按降序排列我剛纔修改如下 NavigableMap nMap = sortedMap.descendingMap(); 再次感謝。 –