/**
* 内存排序(基本类型)
* list 中的map排序
* @param DataList DataList
* @param type 排序类型(String,int,float,long ,double)
* @param sortName 排序字段
* @param order 排序方式(升序"ASC" 降序"DESC")
* @return List
*/
public static List sort(List DataList, final String type,final String sortName,final String order)
{
if(DataList!=null||DataList.size()>1){ //判断是否为空和大于一条数据.
Collections.sort(DataList, new Comparator()
{
public int compare(Object arg0, Object arg1)
{
try
{
Map obj0 = (Map)arg0;
Map obj1 = (Map)arg1;
if(type.equals("String")){
String s0 = (String)obj0.get(sortName);
String s1 = (String)obj1.get(sortName);
if (s0 == null || s1 == null)
{
return s0 == null && s1 != null ? 1 :
(s0 != null && s1 == null ? -1 : 0);
}
if (order.equals("ASC"))
{
return s0.compareTo(s1);
}
return s1.compareTo(s0); //倒序
}
if(type.equals("int")){
Integer s0 = (Integer)obj0.get(sortName);
Integer s1 = (Integer)obj1.get(sortName);
if (s0 == null || s1 == null)
{
return s0 == null && s1 != null ? 1 :
(s0 != null && s1 == null ? -1 : 0);
}
if (order.equals("ASC"))
{
return s0.compareTo(s1);
}
return s1.compareTo(s0); //倒序
}
if(type.equals("long")){
Long s0 = (Long)obj0.get(sortName);
Long s1 = (Long)obj1.get(sortName);
if (s0 == null || s1 == null)
{
return s0 == null && s1 != null ? 1 :
(s0 != null && s1 == null ? -1 : 0);
}
if (order.equals("ASC"))
{
return s0.compareTo(s1);
}
return s1.compareTo(s0); //倒序
}
if(type.equals("float")){
Float s0 = (Float)obj0.get(sortName);
Float s1 = (Float)obj1.get(sortName);
if (s0 == null || s1 == null)
{
return s0 == null && s1 != null ? 1 :
(s0 != null && s1 == null ? -1 : 0);
}
if (order.equals("ASC"))
{
return s0.compareTo(s1);
}
return s1.compareTo(s0); //倒序
}
if(type.equals("double")){
Double s0 = (Double)obj0.get(sortName);
Double s1 = (Double)obj1.get(sortName);
if (s0 == null || s1 == null)
{
return s0 == null && s1 != null ? 1 :
(s0 != null && s1 == null ? -1 : 0);
}
if (order.equals("ASC"))
{
return s0.compareTo(s1);
}
return s1.compareTo(s0); //倒序
}
}
catch (Exception e)
{
e.printStackTrace();
}
return 0;
}
});
}
return DataList;
}