java 按物件屬性排序

2021-09-01 14:55:35 字數 913 閱讀 6662

最近沒事寫了乙個彩票開獎情況統計程式,其中碰到了需要對數字出現的次數排序的問題,因為涉及到物件屬性的排序,覺得有必要總結一下,沒多少技術含量,只是認識了乙個新的介面,權當學習了,呵呵。

以前碰到排序的問題大部分都只是針對單序列的,直接sort一下就完事了,如果是需要對某個物件的某一屬性排序,或者說需要對key-value對進行排序,這就稍微有點麻煩了。

最弱智的方法就是直接對key-value進行冒泡或選擇等基本排序,同時交換key和value,邏輯最簡單,但是時間複雜度也是最高的。其次稍微好點的可以用快排或堆排序,這裡就沒必要細講了,我主要想介紹的是實現comparable介面的排序。

首先通過bean類去繼承comparable介面,實現方法compareto,通過這個方法返回需要排序的value。然後再主類中將bean物件放入list中,呼叫collections.sort(list)方法,就能按compareto方法中的value值進行排序。下面是部分**:

public class number implements comparable

}

public listgetsort(number number)

collections.sort(list);

return list;

}

ok,這樣就能按照number物件的count值對其進行排序了。當然,排序不僅僅限公升序一種,還有降序排列collections.sort(list, collections.reverseorder()),反轉排列collections.reverse(list)等等。

其實採用這種方法並不是為了縮短時間複雜度,我個人覺得這樣能讓**顯得更簡潔些,多呼叫些已經存在的類和方法總好過自己去實現一套差不多的類或方法。

Ruby物件陣列按屬性排序

在rails裡,我們可以用sort by方法對乙個ruby物件陣列按照某個屬性進行排序,如 user.find all sort by 等效於 users user.find all users.sort sort 後面的 使得排序結果直接存入陣列 users中,如果不想排序破壞 users陣列,直...

物件陣列按指定屬性排序

日常積累,歡迎指正 array.prototype.sort const arrtest desc 按 order 屬性公升序排序 arrtest.sort function a,b if a.order b.order if a.order b.order console.log arrtest ...

js中物件陣列按物件屬性排序

let arr 陣列元素通過指定屬性進行比較 param property 屬性名稱 param sorttype 排序方式,預設為公升序 asc 排列 example 使用時傳入 array.sort 方法中 arr.sort arraycompare commentid arr.sort arr...