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