1、自定义的比较器需要实现接口Comparator,并重写里面的方法compare,下面是一个比较器的框架
package testXml;
import java.util.Comparator;
public class PolicyComporator implements Comparator<PointCut>
{
@Override
public int compare(PointCut pc1, PointCut pc2)
{
// -1的话排序为pc1 pc2 1的话排序为pc2 pc1
return 1或者-1或者0
}
}
}
2、使用上面自定义的比较器进行排序
List<PointCut> pcs = matchList(pc);
Collections.sort(pcs, new PolicyComporator());
pcs就是按照自定义比较器排序好的链表。
3、map比较器
public static Map<String, List<Record>> sortMapByKey(Map<String, List<Record>> oriMap)
{
if (oriMap == null || oriMap.isEmpty()) {
return null;
}
Map<String, List<Record>> sortedMap = new TreeMap<String, List<Record>>(new Comparator<String>() {
public int compare(String key1, String key2) {
int intKey1 = 0, intKey2 = 0;
try {
intKey1 = Integer.valueOf(key1);
intKey2 = Integer.valueOf(key2);
} catch (Exception e) {
intKey1 = 0;
intKey2 = 0;
}
return intKey1 - intKey2;
}});
sortedMap.putAll(oriMap);
return sortedMap;
}