Re: [翻譯] Java 8 取出 Collection element 的方式
來閒聊一下...
※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: 要找出 `Person` 的年齡大於 30 的 instance,我們會這樣作:
: List<Person> olderThan30OldWay = new ArrayList<>();
: for ( Person p : personList){
: if ( p.age >= 30){
: olderThan30OldWay.add(p);
: }
: }
: 簡單介紹要用的 API 之後,讓我來展示一下跟第一個範例等意的程式碼:
: List<Person> olderThan30 =
: personList.stream().
: filter(p -> p.age >= 30).
: collect(Collectors.toCollection(() -> new ArrayList<Person>()));
: 上面的程式碼使用內部迴圈以及 lambda expression
: 讓它看起來直覺、簡潔、還可以舒緩眼睛不適。
: (譯註:我承認最後一個是惡搞亂翻的 [逃])
說真的,我覺得這個範例糟糕透了
怎麼看都覺得第一個比較簡單阿... [翻桌]
不然光比較字數也可以阿... Orz
所以我實在忍不住,翻譯上就吐槽了一下
(原文是 soothing to the eye)
當然,也許寫習慣 functional language 的人
會覺得第二種比較直覺 [跪拜之 Orz]
可能在其他(更複雜?)的 case 當中
lambda expression 的寫法會比第一種簡潔許多
我也是看好這種語法(尤其在 Collection 上)
至少像 Objectify 這類型的 library 可以更強大?
雖然我自己可能打死都不會想去用就是了 [死]
--
錢鍾書: 說出來的話
http://www.psmonkey.org
比不上不說出來的話
Java 版 cookcomic 版
只影射著說不出來的話
and more......
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.29.173
推
04/03 14:24, , 1F
04/03 14:24, 1F
→
04/03 14:35, , 2F
04/03 14:35, 2F
→
04/03 14:38, , 3F
04/03 14:38, 3F
→
04/03 14:42, , 4F
04/03 14:42, 4F
→
04/03 14:44, , 5F
04/03 14:44, 5F
→
04/03 15:02, , 6F
04/03 15:02, 6F
→
04/03 15:55, , 7F
04/03 15:55, 7F
→
04/03 15:58, , 8F
04/03 15:58, 8F
→
04/03 15:59, , 9F
04/03 15:59, 9F
推
04/03 16:09, , 10F
04/03 16:09, 10F
→
04/03 16:11, , 11F
04/03 16:11, 11F
→
04/03 16:14, , 12F
04/03 16:14, 12F
→
04/03 16:58, , 13F
04/03 16:58, 13F
→
04/03 17:44, , 14F
04/03 17:44, 14F
→
04/03 18:59, , 15F
04/03 18:59, 15F
討論串 (同標題文章)