隨筆-94  評(píng)論-56  文章-3  trackbacks-0

          假設(shè)List myList 中存放了n個(gè)數(shù)據(jù)對(duì)象,每個(gè)數(shù)據(jù)對(duì)象包含m個(gè)屬性。現(xiàn)在要將這n個(gè)數(shù)據(jù)對(duì)象按照某一個(gè)或幾個(gè)屬性值重新排序,得到排序后的List。為此,可以利用java中的TreeMap來(lái)方便地實(shí)現(xiàn)。
          再具體一些,假設(shè)這n個(gè)數(shù)據(jù)對(duì)象類型為MyEntity, 其中有A, B, C, D, E五個(gè)屬性,現(xiàn)要依次按照A,  E, B的升序來(lái)排序。

          //排序
          Map map = sortMyEntity(myList);
          //得到排序后的List
          myList = convertMapToList(map);

          /**
           *sortMyEntity方法的實(shí)現(xiàn)
           */
          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轉(zhuǎn)換回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) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA相關(guān)技術(shù)
          主站蜘蛛池模板: 邵武市| 丰原市| 石嘴山市| 习水县| 八宿县| 镇远县| 达日县| 上犹县| 密云县| 宁远县| 玛多县| 西盟| 舒兰市| 廉江市| 靖边县| 昌平区| 固原市| 古丈县| 平阴县| 长垣县| 江津市| 镇江市| 紫阳县| 马关县| 泊头市| 景德镇市| 连山| 沙雅县| 临沂市| 龙井市| 榆社县| 开远市| 中阳县| 曲阜市| 舒兰市| 鄱阳县| 汉川市| 陕西省| 华宁县| 二连浩特市| 乡城县|