隨筆-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 小言身寸 閱讀(2885) 評論(0)  編輯  收藏 所屬分類: JAVA相關技術
          主站蜘蛛池模板: 光泽县| 象州县| 郯城县| 依兰县| 如皋市| 石柱| 赣榆县| 云霄县| 肥城市| 博野县| 浦东新区| 开江县| 革吉县| 陇西县| 中超| 夏河县| 甘泉县| 平昌县| 黄梅县| 舞钢市| 葫芦岛市| 穆棱市| 曲阳县| 谢通门县| 唐河县| 文成县| 大理市| 巴东县| 关岭| 文昌市| 涿州市| 马山县| 伊吾县| 青岛市| 雷波县| 崇信县| 孟津县| 巴中市| 三台县| 拜城县| 刚察县|