public class multicompare implements comparator
//如果多個欄位的排序方向不全一致,可用此方式,格式固定為:field1_1、field2_-1
public multicompare(string... fields)
//重寫compare方法
@override
public int compare(object o1, object o2)
}object value1 = invokemethod(field, o1);
object value2 = invokemethod(field, o2);
if(value1 == null)value1 = "";
if(value2 == null)value2 = "";
string v1 = string.valueof(value1.tostring());
string v2 = string.valueof(value2.tostring());
if (v1.equals(v2))
continue;
if (sort == 1) else if (sort == -1) else
} catch (numberformatexception e)
} return result; }
//根據屬性名,獲取對應的get方法的值
private static object invokemethod(string propertiesname, object object)
string methodname = "get"
+ getmethodname(propertiesname.substring(0,
propertiesname.indexof(".")));
method method = object.getclass().getmethod(methodname);
return invokemethod(
propertiesname.substring(propertiesname.indexof(".") + 1),
method.invoke(object));
} catch (exception e)
} //將欄位名的首字母轉為大寫
private static string getmethodname(string fieldname)
}
使用方式如下:
public static void main(string args)
對list根據某個字段進行排序
今天敲 遇到乙個問題 需要對list的某個字段進行排序,而且需要根據自己定義的順序進行排序 我的需求中根據index實體類的indextype欄位進行排序,順序為 b,d,c,a string 我的indextype欄位為string型別,陣列中為我自定義的順序 用的常量 new fixedorde...
對List物件進行排序
最近遇到需要對 list 物件按照某一引數 string型別 進行排序的問題,網上教的大多是自己寫排序方法或者用collections.sort 方法按照某一int型引數進行排序,找了好久找到一種很方便快捷的排序方法。對systemdatelist按systemtype進行排序 systemdate...
linux sort 多欄位排序
linux多數發行版自帶的sort程式,非常強大,在此只說多字段排序 sort 有個引數 k,可以指定字段,有比較複雜的語法,不在文字範圍內。一下為一段資料 從基因中得到,僅僅作為demo 檔名為 data chr13 3008566 3008677 chr9 3024384 3024515 chr...