轉 多欄位排序

2021-09-01 15:27:38 字數 495 閱讀 5159

多欄位排序的問題其實很簡單,只要實現乙個自己的comparator就可以。  例如我有乙個類

class student 

}然後我有乙個arraylist, 新增了三個學生進去

public static void main(string args)

/* 我的排序規則是,先按名字牌,如果名字一樣的,按照id來排,只要把這個邏輯實現在mycomprator裡就可以*/

class mycomparator implements comparator 

// 這個method在這裡沒有用,所以沒有具體實現

public boolean equals (object o)

}這樣,collections.sort()就會根據你自己定義的規則來排序了。它會呼叫compare函式來決定拿個大,拿個小。 如果返回負數,說明前者小,反之亦然。  這裡,當一開始比較名字的時候,我使用了string的compareto , 這樣就不用自己再寫string比較的演算法了

linux sort 多欄位排序

linux多數發行版自帶的sort程式,非常強大,在此只說多字段排序 sort 有個引數 k,可以指定字段,有比較複雜的語法,不在文字範圍內。一下為一段資料 從基因中得到,僅僅作為demo 檔名為 data chr13 3008566 3008677 chr9 3024384 3024515 chr...

C vector多欄位排序

c 當中vector的資料型別是基本型別時,我們利用std sort很容易排序,當我們的型別是自定義的結構體,並且我們還要實現按多字段排序,我有兩種方法 1.我們通過過載operator方法來實現 本例子實現了struct中多個字段排序 cpp view plain copy include inc...

Mysql order by 多欄位排序

降序desc 由大到小 公升序asc 由小到大 mysql單個字段降序排序 select from table order by id desc mysql單個字段公升序排序 select from table order by id asc mysql多個字段排序 select from tabl...