天天看點

java中根據集合屬性進行排序

正常情況下集合中封裝的是某種類型的資料對象,那怎樣對這個集合進行排序呢?下面來看看這一小段代碼:

Collections.sort(dsList, new Comparator<TestVO>() { 
				 public int compare(TestVO ds1,TestVO ds2) {
				 return ds1.getName().compareTo(ds2.getName()); 
				 } 
			});            

解釋說明:

dsList: 是一個List集合

TestVO:是集合中的資料對象的類型,即泛型

ds1:TestVO的一個對象

ds2:TestVO 的一個對象

compartor:源碼的解釋很簡單: 就是一個比較大小,傳回正負零。/** Compares its two arguments for order. Returns a negative integer,zero, or a positive integer as the first argument is less than, equal to, or greater than the second.

在匿名類裡重寫父類的方法compare,傳回兩個對象屬性的比較值

我們跟蹤Collections.sort的源碼可以知道,Arrays的mergeSort方法調用了compare方法,這樣根據判斷大小來傳回重新排序的list集合。

正常情況下集合中封裝的是某種類型的資料對象,那怎樣對這個集合進行排序呢?下面來看看這一小段代碼: