在Java中對集合當中的物件進行排序
轉載自:http://amcucn.iteye.com/blog/270697
作者:物件導向
近日工作當中需要將一些資料按一定的格式進行排序,而這些資料是從資料庫當中查詢出來的一些物件的某個屬性,無法按此屬性進行排序查詢。為此想到將物件取出後再將對其按某格式進行排序,這就需要運用到對集合進行排序。經高人指點,發現以下方法比較好用,特記下一筆。
- /**
- * 根據分類得到與分類相關的所有品牌資訊
- */
- private Collection getBrandByType(Integer typeId) {
- String hql = "select distinct pt.box.productInfo.brand From ProductTop As pt where pt.box.productInfo.type.id=" + typeId ;
- List allBrandList = utilDao.executeQuery(hql);
- //對集合進行排序
- Collections.sort(allBrandList, new compareList() );
- return allBrandList;
- }
- /**
- * 比較兩個物件的大小,實現Comparator介面
- */
- private class compareList implements Comparator{
- public int compare(Object o1, Object o2) {
- Catagory c1 = (Catagory)o1;
- Catagory c2 = (Catagory)o2;
- String catagoryName1 = c1.getName();
- String catagoryName2 = c2.getName();
- //通過比較兩個字串物件來排序。此處可以根據自己的需要寫兩個物件的具體比較內容
- return catagoryName1.compareTo(catagoryName2);
- }
- }
/** * 根據分類得到與分類相關的所有品牌資訊 */ private Collection getBrandByType(Integer typeId) { String hql = "select distinct pt.box.productInfo.brand From ProductTop As pt where pt.box.productInfo.type.id=" + typeId ; List allBrandList = utilDao.executeQuery(hql); //對集合進行排序 Collections.sort(allBrandList, new compareList() ); return allBrandList; } /** * 比較兩個物件的大小,實現Comparator介面 */ private class compareList implements Comparator{ public int compare(Object o1, Object o2) { Catagory c1 = (Catagory)o1; Catagory c2 = (Catagory)o2; String catagoryName1 = c1.getName(); String catagoryName2 = c2.getName();//通過比較兩個字串物件來排序。此處可以根據自己的需要寫兩個物件的具體比較內容 return catagoryName1.compareTo(catagoryName2); } }
大致步驟如下:
首先通過一般的查詢得到一組物件集合此處為:allBrandList 。然後使用Collections.sort方法進行排序,在這個方法當中需要一個實現了Comparator介面的類用來比較兩個物件大小。
至於兩個物件的大小如何比較,是由自己來定義的,此處只使用了String類當中的compareTo方法,也就是Java當中已定義好了的字元比較方法。如果我們有自己的特別需要,則需要自己重寫此方法。
關鍵的程式碼:
相關文章
- 對list集合中的物件進行排序(轉載)物件排序
- iOS中對NSArray中自定義的物件進行排序iOS物件排序
- Java集合中的排序方法Java排序
- 用java.util.Collections中的sort方法對兩個類的物件進行排序Java物件排序
- 在Watir中進行物件對映(Object Map)的方法物件Object
- 在ListCtrl中進行排序 (轉)排序
- 根據陣列中物件進行排序陣列物件排序
- java集合物件排序總結Java物件排序
- java 中對物件的呼叫Java物件
- java對中文(拼音)進行排序Java排序
- JAVA裡List集合中的物件根據物件的某個屬性值降序或者升序排序Java物件排序
- Java 集合中的排序演算法淺析Java排序演算法
- Java -- 對List集合進行分頁Java
- 如何在Python中對dicts列表進行排序Python排序
- 當單擊DBGrid中的標題欄時,進行排序 (轉)排序
- 關於java中實現在oracle資料庫中實現對中文首字母進行排序的解決方案JavaOracle資料庫排序
- 4.10 如何在Java中進行排序開發Java排序
- java中執行緒安全的集合Java執行緒
- Array中物件的排序物件排序
- 如何在dhtmlxGantt網格中對任務進行排序和重新排序HTML排序
- javascript獲取當前li元素在集合中的位置JavaScript
- 在JavaScript中對HTML進行反轉義JavaScriptHTML
- java中的Map集合Java
- 對字典進行排序排序
- 如何對JAVA物件進行深拷貝Java物件
- C語言-對一個結構體中的欄位進行排序C語言結構體排序
- Java中一個物件在多執行緒中是共享的Java物件執行緒
- Linux中ls對檔案進行按大小排序和按時間排序Linux排序
- Javascript中的陣列物件排序JavaScript陣列物件排序
- Java中List的排序Java排序
- java中hashMap的排序JavaHashMap排序
- 在linux系統中對檔案進行分割Linux
- 在SQL Server中對檢視進行增刪改SQLServer
- Java當中的JVMJavaJVM
- Java集合中的框架2Java框架
- java學習中對類和物件的理解Java物件
- Java物件在JVM中長啥樣Java物件JVM
- 利用kvo對集合進行操作