C 中集合的排序

2021-05-27 07:47:10 字數 912 閱讀 5626

arraylist,list,dictionary等c#中常用到的集合都有乙個預設的sort方法,這個方法可以進行預設排序。

但是如果這些集合中的元素是自定義的類,那麼這個預設的sort可能就不準確了。

文章中使用到的命名空間是system,介面是 icomparable 和 icomparer。

sort的預設無引數的比較方式,我個人認為是icomparable中的compareto函式。

抄寫書上的兩個例子來輔助記憶:

class person : icomparable

public string name

public int compareto(object obj)

}}

class personcomparername : icomparer

}

如果在集合中新增的全是person物件,這個集合名稱為list,那麼sort方法:

list.sort(),這個方法將使用person中的compareto方法,通過年齡來對比

list.sort(personcomparername.default),這個方法將使用person中的compare方法,通過名字來對比。

另外list,這個東西居然可以用來繼承。。。。以前都不知道的,不過感覺意義不大。

sort方法還可以使用第三種方式來排序,但是第三種方式的排序需要另外寫乙個函式方法。

public int comparesort(point x, point y)

comparisonsorterx = new comparison(comparesort);

list.sort(sorterx);

這樣就可以呼叫了。

JAVA中集合的排序方法

1.專案中一些物件都是存在hashmap裡,hashmap本身是無序的,現在想對hashmap根據key排序後輸出value,可以利用collections類來快速完成有序輸出,下面是 片段 hashmap compmap new hashmap compmap.put ooooo null com...

C 中集合的使用

c 中的集合介面 ienumerable ienumerable icollection icollection idictionary idictionary ilist ilist 集合介面的關係 inte ce ienumerablet ienumerable inte ce icollect...

c 中集合的用法

2.非泛型集合 3.list 泛型集合 參考文獻 1.1陣列的限制 1.2集合的分類 c 中的集合一般分為兩種,泛型集合和非泛型集合,我一般非泛型集合用的比較少。主要用泛型集合 c 中的集合主要有這麼幾種 arraylist 表示物件的陣列,這些物件的大小會根據需要動態增加。hashtable 表示...