假设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;
}
posted on 2007-11-29 15:40
小言身寸 阅读(2868)
评论(0) 编辑 收藏 所属分类:
JAVA相关技术