隨筆-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 小言身寸 閱讀(2880) 評論(0)  編輯  收藏 所屬分類: JAVA相關技術
          主站蜘蛛池模板: 赣榆县| 霞浦县| 阜新市| 鄱阳县| 唐河县| 香港 | 彭山县| 昂仁县| 尉犁县| 高阳县| 阿尔山市| 丽江市| 绵竹市| 临沭县| 徐汇区| 库车县| 汕尾市| 长沙市| 阜城县| 汉寿县| 兴城市| 泸定县| 长岛县| 苗栗市| 光泽县| 沿河| 枞阳县| 临高县| 新巴尔虎左旗| 吉木萨尔县| 新野县| 威远县| 千阳县| 客服| 历史| 苗栗市| 贵南县| 东乌珠穆沁旗| 德安县| 惠东县| 鹤峰县|