例如,我有一個名爲RecordGroup的java對象。類簽名低於給:Java:如何按對象的屬性對對象列表進行排序和分組
公共類RecordGroup {
private String owner;
private Integer startRow;
private Integer recordCount;
public RecordGroup() {
}
public RecordGroup(String owner, Integer startRow, Integer recordCount) {
this.owner = owner;
this.startRow = startRow;
this.recordCount = recordCount;
}
public String getOwner() {
return owner;
}
public void setOwner(String owner) {
this.owner = owner;
}
public Integer getRecordCount() {
return recordCount;
}
public void setRecordCount(Integer recordCount) {
this.recordCount = recordCount;
}
public Integer getStartRow() {
return startRow;
}
public void setStartRow(Integer startRow) {
this.startRow = startRow;
}
}
而且,我有如下給予持有上述對象的名單列表。
公共類測試{
列表< 'RecordGroup'> mergerMap =新的ArrayList < 'RecordGroup'>();
mergerMap.add(new RecordGroup("RECORD", 1, 6));
mergerMap.add(new RecordGroup("RECORD", 7, 9));
mergerMap.add(new RecordGroup("RECORD", 3, 4));
mergerMap.add(new RecordGroup("ZONE", 3, 1));
mergerMap.add(new RecordGroup("MODULE", 5, 6));
mergerMap.add(new RecordGroup("ZONE", 14, 28));
mergerMap.add(new RecordGroup("ZONE", 6, 30));
mergerMap.add(new RecordGroup("MODULE", 1, 60));
mergerMap.add(new RecordGroup("OFFICE", 2, 4));
mergerMap.add(new RecordGroup("OFFICE", 8, 6));
mergerMap.add(new RecordGroup("USER", 1, 6));
mergerMap.add(new RecordGroup("USER", 9, 8));
mergerMap.add(new RecordGroup("USER", 5, 7));
mergerMap.add(new RecordGroup("OFFICE", 3, 1));
}
我的問題是,如何通過他們的「老闆」和「STARTROW」上述RecordGroup對象的列表進行排序,以便它可以組由業主記錄,即第一個「區」組那麼「OFFICE」組,然後是「USER」組,然後是「MODULE」,最後是「RECORD」組應該出現在列表中。它還應該在排序和分組時考慮「startRow」字段,即按照「startRow」字段的值按升序排列每個組。
出認沽應該是這樣的:
mergerMap.add(new RecordGroup("ZONE", 3, 1));
mergerMap.add(new RecordGroup("ZONE", 6, 30));
mergerMap.add(new RecordGroup("ZONE", 14, 28));
mergerMap.add(new RecordGroup("OFFICE", 2, 4));
mergerMap.add(new RecordGroup("OFFICE", 3, 1));
mergerMap.add(new RecordGroup("OFFICE", 8, 6));
mergerMap.add(new RecordGroup("USER", 1, 6));
mergerMap.add(new RecordGroup("USER", 5, 7));
mergerMap.add(new RecordGroup("USER", 9, 8));
mergerMap.add(new RecordGroup("MODULE", 1, 60));
mergerMap.add(new RecordGroup("OFFICE", 2, 4));
mergerMap.add(new RecordGroup("MODULE", 5, 6));
mergerMap.add(new RecordGroup("RECORD", 1, 6));
mergerMap.add(new RecordGroup("RECORD", 3, 4));
mergerMap.add(new RecordGroup("RECORD", 7, 9));
[地產自定義對象的排序的ArrayList]的可能重複(HTTP:/ /stackoverflow.com/questions/2784514/sort-arraylist-of-custom-objects-by-property) – sanbhat
這將解決你的目的。 http://www.thejavageek.com/2013/06/17/sorting-user-defined-objects-part-2/ –