package com.zbiti.plugins.multidimension; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; public class MdPluginsManager { /** * 多維插件入口 * * @param * @return * @author Andsion */ public List process(List data, String arg, String xField, List yFields) { List returnList = new ArrayList(); // 調用該方法返回的List List dsList = new ArrayList(); // 用於保存非集團本部的List // 1.判斷List中是否有本部,若是有則將其加入到本部list中 for (int i = 0; i < data.size(); i++) {> 0) { // 若是存在集團本部數據、即將其先加入返回的List中,達到數據在上的效果。 returnList.add(data.get(i)); } else { // 非集團本部的數據保存在地市的list中,後面作排序使用 dsList.add(data.get(i)); } } /* 地市list排序前輸出 * for (int i = 0; i < dsList.size(); i++) { * System.out.println("地市List排序前---" + * dsList.get(i).get("REGION_OUT").toString() + "-----" + * dsList.get(i).get("USERCOUNTS").toString()); } */ // 地市list按USERCOUNTS降序排列 Collections.sort(dsList, new Comparator() { public int compare(Map o1, Map o2) { return (Integer) o1.get("USERCOUNTS") > (Integer) o2 .get("USERCOUNTS") ? ((Integer) o1.get("USERCOUNTS") == (Integer) o2 .get("USERCOUNTS") ? 0 : -1) : 1; } }); /* 地市list排序後輸出 * for (int i = 0; i < dsList.size(); i++) { * System.out.println("ds排序後---" + * dsList.get(i).get("REGION_OUT").toString() + "-----" + * dsList.get(i).get("USERCOUNTS").toString()); } */ // 地市list排序完成後,再加入到返回的list中 returnList.addAll(dsList); return returnList; } public void sort(List> list) { Collections.sort(list, new Comparator>() { public int compare(Map o1, Map o2) { return (Integer) o1.get("USERCOUNTS") > (Integer) o2 .get("USERCOUNTS") ? ((Integer) o1.get("USERCOUNTS") == (Integer) o2 .get("USERCOUNTS") ? 0 : -1) : 1; } }); } }java