go根據結構體中任意字段進行排序

2021-10-17 08:38:14 字數 1731 閱讀 3765

package main

import

("fmt"

"sort"

)type student struct

type bynumber [

]*student

func

(this bynumber)

len(

)int

func

(this bynumber)

less

(i,j int

)bool

func

(this bynumber)

swap

(i,j int

)func

(this bynumber)

string()

string

return""}

func

main1()

,&student

,&student

,&student

,&student,}

b:=bynumber

(sts)

sort.

sort

(b) fmt.

println

(b) fmt.

println

("反轉"

) sort.

sort

(sort.

reverse

(b))

//反轉的用法

fmt.

println

(b)//為結構體內的每乙個欄位都繫結乙個排序的外殼,這種操作顯然不是很聰明

//這時候使用組合來解決這個問題

}type customsort struct

func

(this *customsort)

len(

)int

func

(this *customsort)

swap

(i,j int

)func

(this *customsort)

less

(i,j int

)bool

func

main()

,&student

,&student

,&student

,&student,}

c:=&customsort

if i.name!=j.name

return

false},

}/*package sort

// a type, typically a collection, that satisfies sort.inte***ce can be

// sorted by the routines in this package. the methods require that the

// elements of the collection be enumerated by an integer index.

type inte***ce inte***ce

*/ sort.

sort

(c)//sort方法中不只能放slice型別,還可以放結構體型別,只要改型別 實現 sort介面

fmt.

println

(bynumber

(sts)

)//單純的使用一下bynumber中重寫是string()方法

}

java list根據元素字段進行優先順序排序

在做乙個油田系統時遇到的需要根據優先順序排序的問題 現有乙個預算單的集合list,要根據歷史單據做新的預算單據,但在做之前要查到之前的單據進行修改另存為新的單據,查詢的過程是根據預算單的幾個引數進行優先順序排序查詢,以便查詢到最符合現在要求的歷史單據作為修改模板。預算單據實體 如下 column n...

python根據字典中的value進行排序

現在有乙個字典,key是字串,value是數字,希望根據value對字典進行排序,返回結果是列表,列表內的元素是原字典鍵值對組成的元組 例如 dic 經過排序後返回 return ace 12 abc 23 解決方法 lis sorted dic.items key lambda x x 1 若需要...

根據傳入的字段和排序規則對 list進行排序

個人筆記 問題描述 根據實體類demo的字段test進行排序 大概分為兩步 使用反射獲取類中的方法,使用collections.sort 進行排序 1 使用反射獲取類中的方法 實體類demo的相關 就不寫了,getter setter什麼的,知道其中有乙個方法是gettest 就可以了 public...