import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class RecordGroup {
public RecordGroup() {
}
this.owner = owner;
this.startRow = startRow;
this.recordCount = recordCount;
}
return owner;
}
public void setOwner
(String owner
) { this.owner = owner;
}
return recordCount;
}
public void setRecordCount
(Integer recordCount
) { this.recordCount = recordCount;
}
return startRow;
}
public void setStartRow
(Integer startRow
) { this.startRow = startRow;
}
@Override
return owner + " , " + startRow + "\n";
}
}
class Test {
public static void main
(String a
[]){ List<RecordGroup> mergerMap = new 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));
Collections.
sort(mergerMap,
new Comparator
<RecordGroup
>() {
public int compare(RecordGroup o1, RecordGroup o2) {
if (o1.getOwner().compareTo(o2.getOwner()) == 0) {
return o1.getStartRow() - o2.getStartRow();
} else {
return o1.getOwner().compareTo(o2.getOwner());
}
}
});
System.
out.
println(mergerMap
); }
}
aW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7CmltcG9ydCBqYXZhLnV0aWwuQ29sbGVjdGlvbnM7CmltcG9ydCBqYXZhLnV0aWwuQ29tcGFyYXRvcjsKaW1wb3J0IGphdmEudXRpbC5MaXN0OwpjbGFzcyBSZWNvcmRHcm91cCB7CgogICAgcHJpdmF0ZSBTdHJpbmcgb3duZXI7CiAgICBwcml2YXRlIEludGVnZXIgc3RhcnRSb3c7CiAgICBwcml2YXRlIEludGVnZXIgcmVjb3JkQ291bnQ7CgogICAgcHVibGljIFJlY29yZEdyb3VwKCkgewogICAgfQoKICAgIHB1YmxpYyBSZWNvcmRHcm91cChTdHJpbmcgb3duZXIsIEludGVnZXIgc3RhcnRSb3csIEludGVnZXIgcmVjb3JkQ291bnQpIHsKICAgICAgICB0aGlzLm93bmVyID0gb3duZXI7CiAgICAgICAgdGhpcy5zdGFydFJvdyA9IHN0YXJ0Um93OwogICAgICAgIHRoaXMucmVjb3JkQ291bnQgPSByZWNvcmRDb3VudDsKICAgIH0KCiAgICBwdWJsaWMgU3RyaW5nIGdldE93bmVyKCkgewogICAgICAgIHJldHVybiBvd25lcjsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRPd25lcihTdHJpbmcgb3duZXIpIHsKICAgICAgICB0aGlzLm93bmVyID0gb3duZXI7CiAgICB9CgogICAgcHVibGljIEludGVnZXIgZ2V0UmVjb3JkQ291bnQoKSB7CiAgICAgICAgcmV0dXJuIHJlY29yZENvdW50OwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldFJlY29yZENvdW50KEludGVnZXIgcmVjb3JkQ291bnQpIHsKICAgICAgICB0aGlzLnJlY29yZENvdW50ID0gcmVjb3JkQ291bnQ7CiAgICB9CgogICAgcHVibGljIEludGVnZXIgZ2V0U3RhcnRSb3coKSB7CiAgICAgICAgcmV0dXJuIHN0YXJ0Um93OwogICAgfQoKICAgIHB1YmxpYyB2b2lkIHNldFN0YXJ0Um93KEludGVnZXIgc3RhcnRSb3cpIHsKICAgICAgICB0aGlzLnN0YXJ0Um93ID0gc3RhcnRSb3c7CiAgICB9CiAgICAgQE92ZXJyaWRlCnB1YmxpYyBTdHJpbmcgdG9TdHJpbmcoKSB7CnJldHVybiBvd25lciArICIgLCAiICsgc3RhcnRSb3cgKyAiXG4iOwp9Cn0KCmNsYXNzIFRlc3QgewoKIAoKICAgICAgCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nIGFbXSl7CiAgICAgICAgCUxpc3Q8UmVjb3JkR3JvdXA+IG1lcmdlck1hcCA9IG5ldyBBcnJheUxpc3Q8UmVjb3JkR3JvdXA+KCk7CiAgICAgICAgCSAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIlJFQ09SRCIsIDEsIDYpKTsKICAgICAgICBtZXJnZXJNYXAuYWRkKG5ldyBSZWNvcmRHcm91cCgiUkVDT1JEIiwgNywgOSkpOwogICAgICAgIG1lcmdlck1hcC5hZGQobmV3IFJlY29yZEdyb3VwKCJSRUNPUkQiLCAzLCA0KSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIlpPTkUiLCAzLCAxKSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIk1PRFVMRSIsIDUsIDYpKTsKICAgICAgICBtZXJnZXJNYXAuYWRkKG5ldyBSZWNvcmRHcm91cCgiWk9ORSIsIDE0LCAyOCkpOwogICAgICAgIG1lcmdlck1hcC5hZGQobmV3IFJlY29yZEdyb3VwKCJaT05FIiwgNiwgMzApKTsKICAgICAgICBtZXJnZXJNYXAuYWRkKG5ldyBSZWNvcmRHcm91cCgiTU9EVUxFIiwgMSwgNjApKTsKICAgICAgICBtZXJnZXJNYXAuYWRkKG5ldyBSZWNvcmRHcm91cCgiT0ZGSUNFIiwgMiwgNCkpOwogICAgICAgIG1lcmdlck1hcC5hZGQobmV3IFJlY29yZEdyb3VwKCJPRkZJQ0UiLCA4LCA2KSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIlVTRVIiLCAxLCA2KSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIlVTRVIiLCA5LCA4KSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIlVTRVIiLCA1LCA3KSk7CiAgICAgICAgbWVyZ2VyTWFwLmFkZChuZXcgUmVjb3JkR3JvdXAoIk9GRklDRSIsIDMsIDEpKTsKICAgICAgICAJIENvbGxlY3Rpb25zLnNvcnQobWVyZ2VyTWFwLCBuZXcgQ29tcGFyYXRvcjxSZWNvcmRHcm91cD4oKSB7CiAKcHVibGljIGludCBjb21wYXJlKFJlY29yZEdyb3VwIG8xLCBSZWNvcmRHcm91cCBvMikgewppZiAobzEuZ2V0T3duZXIoKS5jb21wYXJlVG8obzIuZ2V0T3duZXIoKSkgPT0gMCkgewpyZXR1cm4gbzEuZ2V0U3RhcnRSb3coKSAtIG8yLmdldFN0YXJ0Um93KCk7Cn0gZWxzZSB7CnJldHVybiBvMS5nZXRPd25lcigpLmNvbXBhcmVUbyhvMi5nZXRPd25lcigpKTsKfQp9Cn0pOwpTeXN0ZW0ub3V0LnByaW50bG4obWVyZ2VyTWFwKTsKICAgICAgICB9Cn0=
[MODULE , 1
, MODULE , 5
, OFFICE , 2
, OFFICE , 3
, OFFICE , 8
, RECORD , 1
, RECORD , 3
, RECORD , 7
, USER , 1
, USER , 5
, USER , 9
, ZONE , 3
, ZONE , 6
, ZONE , 14
]