假設List myList 中存放了n個數據對象,每個數據對象包含m個屬性。現在要將這n個數據對象按照某一個或幾個屬性值重新排序,得到排序后的List。為此,可以利用java中的TreeMap來方便地實現。
再具體一些,假設這n個數據對象類型為MyEntity, 其中有A, B, C, D, E五個屬性,現要依次按照A, E, B的升序來排序。
//排序
Map map = sortMyEntity(myList);
//得到排序后的List
myList = convertMapToList(map);
/**
*sortMyEntity方法的實現
*/
public Map sortMyEntity(List myList) {
Map sortMap = new TreeMap();
for (int i = 0; i < myList.size(); i++) {
MyEntity entity = (MyEntity)myList.get(i);
String key = entity.getA().toString() + ":" + entity.getE().toString() + ":" + entity.getB().toString();
sortMap.put(key, entity);
}
return sortMap;
}
/**
*將排序后的Map轉換回List
*/
public List convertMapToList(Map sortMap) {
List resultList = new ArrayList();
Iterator itKey = sortMap.keySet().iterator();
while (itKey.hasNext()) {
String key = (String)itKey.next();
MyEntity entity = (MyEntity)sortMap.get(key);
resultList.add(entity);
}
return resultList;
}