list集合中根據對象排序的問題

我從數據庫拿到數據  是一個list 拿的時候沒有根據對象屬性排序,繼而在網上找到了關於list根據對象排序的問題,下面是一段通用的代碼:

public <E> E Sort(List<E> list, String getMethod, String sort) {
		Collections.sort(list, new Comparator<Object>() {  
		    @SuppressWarnings("unchecked")
			public int compare(Object a, Object b) {  
		    int ret = 0;  
		    try{  
		    Method m1 = ((E)a).getClass().getMethod(getMethod, null);  
		    Method m2 = ((E)b).getClass().getMethod(getMethod, null);  
		    if(sort != null && "desc".equals(sort))//倒序  
		    ret = m2.invoke(((E)b), null).toString().compareTo(m1.invoke(((E)a), null).toString());  
		    else//正序  
		    ret = m1.invoke(((E)a), null).toString().compareTo(m2.invoke(((E)b), null).toString());  
		    }catch(NoSuchMethodException ne){  
		    System.out.println(ne);  
		}catch(IllegalAccessException ie){  
		System.out.println(ie);  
		}catch(InvocationTargetException it){  
		System.out.println(it);  
		}  
		    return ret;  
		    }  
		 });  
		return (E) list;
	}
使用的時候  調用這個方法 傳三個參數進去 第一個參數:就是你要排序的那個list

第二個參數:你要排序的那個屬性的get方法(比如說userId:“getUserId”)

第三個參數:你倒敘還是怎樣(倒序:“desc”   順序:null)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章