62,615
社区成员
发帖
与我相关
我的任务
分享
package com.nyohh.test1;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
public class DataSortTest
{
public List<SomeBody> process(List<SomeBody> data)
{
Map<Integer, String> map2 = new TreeMap(new MyComparator());// 这个是存存储总部的
for (SomeBody someBody : data)
{
if (someBody.getAdress() == "总部")
{
data.remove(someBody);
map2.put(someBody.getCount(), someBody.getAdress());
}
}
// 哥,这里有原来的data剩下的都是没有总部的,排序
// map2里面的都是含总部的,排序
// 然后把map2的添加到data的前面,这里我不熟,我要查手册搞,
return data;
}
public static void main(String[] args)
{
// public List<Map> process(List<Map> data)
// data的数据格式:[{count=1588847, adress=南京}, {count=973476, adress=南通}, {count=371132, adress=总部},……];
ArrayList<SomeBody> arrayList = new ArrayList<SomeBody>();
arrayList.add(new SomeBody(1588847, "南京"));
arrayList.add(new SomeBody(973476, "南通"));
arrayList.add(new SomeBody(371132, "总部"));
}
}
/**
* 按count倒序排列
*/
class MyComparator implements Comparator<SomeBody>
{
@Override
public int compare(SomeBody o1, SomeBody o2)
{
return o2.getCount() - o1.getCount();
}
}
class SomeBody
{
public Integer count;
public String adress;
public SomeBody(Integer count, String adress)
{
this.count = count;
this.adress = adress;
}
public Integer getCount()
{
return count;
}
public void setCount(Integer count)
{
this.count = count;
}
public String getAdress()
{
return adress;
}
public void setAdress(String adress)
{
this.adress = adress;
}
}
草样,我先回去的,老婆打电话了的!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<Map> process(List<Map> data, String arg, String xField,
List<String> yFields) {
List<Map> returnList = new ArrayList<Map>(); // 调用该方法返回的List
List<Map> dsList = new ArrayList<Map>(); // 用于保存非集团本部的List
// 1.判断List中是否有本部,如果有则将其加入到本部list中
for (int i = 0; i < data.size(); i++) {
if (data.get(i).get("REGION_OUT").toString().indexOf("本部") > 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<Map>() {
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<Map<String, Object>> list) {
Collections.sort(list, new Comparator<Map<String, Object>>() {
public int compare(Map<String, Object> o1, Map<String, Object> o2) {
return (Integer) o1.get("USERCOUNTS") > (Integer) o2
.get("USERCOUNTS") ? ((Integer) o1.get("USERCOUNTS") == (Integer) o2
.get("USERCOUNTS") ? 0 : -1) : 1;
}
});
}
}
谢谢各位,解决了!