随笔-94  评论-56  文章-3  trackbacks-0

假设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相关技术

只有注册用户登录后才能发表评论。


网站导航: