最近遇到個小問題,就是數據在頁面是亂的 後臺排序無用 具體原因我就不說了 說下解決辦法把 。
首先我使用java.util.Collections; Collections.sort(list<?>); 來解決這個問題
根據後臺數據 創建一個bean 如 數據中有 A,B,C,D四個字段
創建一個Record類類名隨意 實現Comparable 再序列化Serializable
package com.hd.rcugrc.project.oa.publicBusinesApproval.entity;
import java.io.Serializable;
import java.util.Date;
public class Record implements Serializable, Comparable<Record>{
/**
*
*/
private static final long serialVersionUID = 7427050133781922329L;
private int STATUS;
private int INSTID ;
private int ENTITYID ;
private String TE_SERIAL_NUMBER ;
private int PRINT_STATUS ;
private int ID ;
private String DOC_TITLE ;
private int rn;
private Date DRAFT_TIME ;
private String REASON ;
private String FORM_ID ;
// public Record() {
// this.TE_SERIAL_NUMBER = TE_SERIAL_NUMBER;
//
// }
@Override
public int compareTo(Record o) {
String NUMBER = this.TE_SERIAL_NUMBER;
int startIndex = 0;
if(Integer.valueOf(NUMBER) < Integer.valueOf(o.TE_SERIAL_NUMBER)) {
startIndex = 1;
}else {
startIndex = -1;
}
return startIndex;
}
public int getSTATUS() {
return STATUS;
}
public void setSTATUS(int sTATUS) {
STATUS = sTATUS;
}
public int getINSTID() {
return INSTID;
}
public void setINSTID(int iNSTID) {
INSTID = iNSTID;
}
public int getENTITYID() {
return ENTITYID;
}
public void setENTITYID(int eNTITYID) {
ENTITYID = eNTITYID;
}
public String getTE_SERIAL_NUMBER() {
return TE_SERIAL_NUMBER;
}
public void setTE_SERIAL_NUMBER(String tE_SERIAL_NUMBER) {
TE_SERIAL_NUMBER = tE_SERIAL_NUMBER;
}
public int getPRINT_STATUS() {
return PRINT_STATUS;
}
public void setPRINT_STATUS(int pRINT_STATUS) {
PRINT_STATUS = pRINT_STATUS;
}
public int getID() {
return ID;
}
public void setID(int iD) {
ID = iD;
}
public String getDOC_TITLE() {
return DOC_TITLE;
}
public void setDOC_TITLE(String dOC_TITLE) {
DOC_TITLE = dOC_TITLE;
}
public int getRn() {
return rn;
}
public void setRn(int rn) {
this.rn = rn;
}
public Date getDRAFT_TIME() {
return DRAFT_TIME;
}
public void setDRAFT_TIME(Date dRAFT_TIME) {
DRAFT_TIME = dRAFT_TIME;
}
public String getREASON() {
return REASON;
}
public void setREASON(String rEASON) {
REASON = rEASON;
}
public String getFORM_ID() {
return FORM_ID;
}
public void setFORM_ID(String fORM_ID) {
FORM_ID = fORM_ID;
}
@Override
public String toString() {
return "Record [STATUS=" + STATUS + ", INSTID=" + INSTID + ", ENTITYID=" + ENTITYID + ", TE_SERIAL_NUMBER="
+ TE_SERIAL_NUMBER + ", PRINT_STATUS=" + PRINT_STATUS + ", ID=" + ID + ", DOC_TITLE=" + DOC_TITLE
+ ", rn=" + rn + ", DRAFT_TIME=" + DRAFT_TIME + ", REASON=" + REASON + ", FORM_ID=" + FORM_ID + "]";
}
}
在compareTo 方法中寫我們的排序條件
重點排序功能在這
@Override
public int compareTo(Record o) {//
String NUMBER = this.TE_SERIAL_NUMBER;
//獲取需要排序的字段
int startIndex = 0;
if(Integer.valueOf(NUMBER) < Integer.valueOf(o.TE_SERIAL_NUMBER)) {
//判斷大小
startIndex = 1;
}else {
startIndex = -1;
}
return startIndex;
}
//-------------------------------------------------
那個方法可以後面寫 先使用
List<Record> listRecord = new ArrayList<Record>();
new一個Array
將需要排序的數據 循環放入
for (int i = 0; i < list.size(); i++) {
Record rco = new Record();//我們創建用來排序的Bean
Map ma = (Map) list.get(i);//獲取每條數據 這裏根據你數據形式來
String TE_SERIAL_NUMBER = (String) ma.get("TE_SERIAL_NUMBER");//我這裏只拿一個字段演示因爲要用這個字段排序就用這個字段了
rco.setTE_SERIAL_NUMBER(TE_SERIAL_NUMBER);
}
Collections.sort(listRecord);//將list進行排序
這個時候就會進入compareTo 進行排序
無需接收返回值 listRecord 在經過這個方法以後就是排序後的數據集合
直接使用或者返回前臺即可
算了 截個圖給你看吧。。。
1:需要排序的list集合,數據錯亂狀態
2:自定義的Bean
3:我們自定義Bean爲泛型的ArrayList
4:排序方法類.sort排序方法 傳入3
5:Set進數據的list
6:排序後的集合