作者 | CodeData
top

CodeData 作者

CodeData 作者群

caterpillar

目前為自由工作者,喜好研究程式語言、框架、社群,從中學習設計、典範及文化。閒暇之餘 記錄所學,技術文件涵蓋 C/C++, Java, Ruby/Rails, Python, JavaScript, Haskell 等多個領域,出版電子書 Java SE 6 技術手冊Java Lambda TutorialJava TutorialPython TutorialEssential JavaScriptHaskell Tutorial

191Posts

【Guava 教學】(8)你需要的其實是範圍(Range)?

By caterpillar | 2013/07/23

實際上,你需要的或許只是範圍,那麼用 Range 就足夠了,如果真的需要逐一取得範圍中的不連續元素,搭配 DiscreteDomain 就可以達到目的,而且不用一開始就建立所有的元素,只需在必要的時候取用即可。

Java 開發者的函數式程式設計(2)代數資料型態

By caterpillar | 2013/07/19

我們大多熟悉物件導向程式設計,熟悉抽象資料型態(Abstract data type, ADT)。抽象資料型態的模型中封裝了資料結構與實作,僅透露互動時的公開介面;然而,代數資料型態(Algebraic data type)相對地曝露了基本的資料結構及規律性,在函數式程式設計的領域中,代數資料型態是基本元素。

【Guava 教學】(7)Multiset、Multimap 與 BiMap

By caterpillar | 2013/07/18

如果有個清單,想要取得清單中不重複的元素,最快的方式就是使用 JDK 中的 Set。如果不單只是計數,在後續迭代時也想要取得重複元素呢?程式碼當然可以自己撰寫,只不過 Guava 的 Multiset 實作將這些細節都封裝起來了…

Java 開發者的函數式程式設計(1)初探函數式程式設計

By caterpillar | 2013/07/15

如果使用的語言並非函數式語言,你不能不假思索地直接套用函數式設計的所有概念,否則就有可能事倍功半,可讀性與效能都會變差。如果你想進行純函數式程式設計...只有先瞭解函數式設計的本質,才可以讓我們明瞭,如何適當地擷取函數式設計的概念。

【Guava 教學】(6)不可變群集

By caterpillar | 2013/07/11

不可變物件(Immutable object)有許多好處,像是在並行(Concurrent)程式設計時,因為就不用擔心那些執行緒共用競爭的問題; 在面對資料處理問題時,需要一些群集(Collection)物件,像是有序的清單(List)、收集不重複物件的集合(Set)等,這些群集物件若是不可變,那麼就有可能共用資料結構,達到節省時間及空間之目的。

認識 Lambda/Closure(8)方法參考與建構式參考

By caterpillar | 2013/07/09

在 Java 中引人 Lambda 的同時,與現有 API 維持相容性是主要考量之一。除了採用函式介面之外,方法參數(Method reference)在重用現有 API 上也扮演了重要的角色。重用現有的方法實作,可避免到處寫下 Lambda 運算式。

tags: 世間

【世間】你想賣香雞排嗎?

By caterpillar | 2013/07/05

很多工作或決定,其實就只是想要什麼,自己選擇,選擇之後,承擔後果,如此而已,自己想清楚想要什麼才是最重要的 ... 如果你做不到,那麼就是不尊重他們的工作,你去做了,到時就是不尊重自己的工作,你自己都不想尊重的工作,為什麼還想去做?

【Guava 教學】(5)程式 90% 比率在管理與處理錯誤

By caterpillar | 2013/07/03

語法的簡便,其實只是讓你省去少打幾個字之類的麻煩,不過如果你不知道本質上該如何處理,那麼也是會發生濫用的情況。同樣地,Guava 的 Throwables 看來是省了一些功夫,不過也別亂用, ThrowablesExplained 的說明中,有一些不建議的使用方式,建議你瞭解一下,看看原因…

認識 Lambda/Closure(7)JDK8 Lambda 語法

By caterpillar | 2013/07/02

終於要來介紹 JDK8 Lambda 語法了。在 JDK8 中要表示 (x -> x * 2),基本上,可以寫為以下的形式: (Integer x) -> x + 2

【Guava 教學】(4)實作 toString、equals 與 hashCode 的幫手

By caterpillar | 2013/06/26

除了產生 toString 的幫手之外,Guava 在比較物件時也提供了 Objects.equal,這東西與 JDK7 的 Objects.equals 是相同作用的,如果你使用 JDK6 或之前的版本,則可以試試 Guava 的。怎麼用呢?因為 Objects.equal 蠻簡單的,單純解釋它沒意思,重點還是在於怎麼寫出正確的 equals 比較重要...

熱門技術文章

最新論壇文章