[問題] Collections.sort更簡潔的寫法?

看板java作者 (好人超)時間9年前 (2015/05/28 23:05), 9年前編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/6 (看更多)
使用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

05/28 23:30, , 1F
reflection ?
05/28 23:30, 1F

05/29 01:30, , 2F
用int[] {i,j,k...},再加一個getByIndex
05/29 01:30, 2F

05/29 01:30, , 3F
再實作一個MyDataComparator 就call這個method
05/29 01:30, 3F

05/29 01:31, , 4F
new 這個comparator時就傳進index
05/29 01:31, 4F

05/30 12:03, , 5F
把它折疊起來讓它看起來像lambda?XD
05/30 12:03, 5F
Android studio是會自己折起來看起來像lambda沒錯啦...XD ※ 編輯: james732 (122.116.178.230), 06/01/2015 23:42:38
文章代碼(AID): #1LPowSdZ (java)
討論串 (同標題文章)
文章代碼(AID): #1LPowSdZ (java)