作者james732 (好人超)
看板java
標題[問題] Collections.sort更簡潔的寫法?
時間Thu May 28 23:04:58 2015
使用IDE:Android Studio 1.2.1.1
我有一個class:
class MyData
{
public int i, j, k, l, m, n, o; // 七組資料
};
然後有個 List 裝了很多個 Data
List<MyData> dataList = new ArrayList<MyData>();
我希望讓使用者可以選擇根據i,j,k,l,m,n,o的某一項來排序list,所以寫了
Collections.sort(dataList, new Comparator<MyData>() {
@Override
public int compare(MyData lhs, MyData rhs) {
return (lhs.
i > rhs.
i);
}
}
同樣的內容寫了七次,就只有上面紅色的部份不同
雖然程式看起來可以正常運作,但自己都覺得那一堆實在累贅....
想請問有沒有其他辦法可以讓我重覆的code不要那麼多呢?變得更加簡潔
(假如無法使用lambda...我還在研究Android studio能不能用...)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.137.66.159
※ 文章網址: https://www.ptt.cc/bbs/java/M.1432825500.A.9E3.html
※ 編輯: james732 (223.137.66.159), 05/28/2015 23:05:22
→ kogrs: reflection ? 05/28 23:30
→ yyc1217: 用int[] {i,j,k...},再加一個getByIndex 05/29 01:30
→ yyc1217: 再實作一個MyDataComparator 就call這個method 05/29 01:30
→ yyc1217: new 這個comparator時就傳進index 05/29 01:31
推 Frozenmouse: 把它折疊起來讓它看起來像lambda?XD 05/30 12:03
Android studio是會自己折起來看起來像lambda沒錯啦...XD
※ 編輯: james732 (122.116.178.230), 06/01/2015 23:42:38