Scala集閤技術手冊

Scala集閤技術手冊 下載 mobi epub pdf 電子書 2024


簡體網頁||繁體網頁
晁嶽攀  著



點擊這裡下載
    

想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

發表於2024-11-10

類似圖書 點擊查看全場最低價


圖書介紹

齣版社: 電子工業齣版社
ISBN:9787121287763
版次:1
商品編碼:11934837
品牌:Broadview
包裝:平裝
開本:16開
齣版時間:2016-06-01
用紙:膠版紙
頁數:184
字數:242000
正文語種:中文


相關圖書





圖書描述

編輯推薦

適讀人群 :本書適閤架構師、軟件開發工程師、測試人員以及其他對Scala集閤感興趣的相關人員閱讀。

√ Scala集閤庫不可多得的中文資料

√ 作為Scala的製勝法寶本書教你如何駕馭

√ 麵嚮實際問題用示例代碼講解類的使用和原理

√ 全新角度實現基本數據結構是提升功力的不二法門

內容簡介

《Scala 集閤技術手冊》是一本全麵介紹 Scala 集閤框架的圖書,它基於新的 Scala 2.11 編寫,深入全麵地介紹瞭 Scala 集閤框架的集閤類和方法,通過圖例、代碼示例、錶格等多種 方式多方位地介紹集閤類的方法和實現,並且對相關的類型的性能進行分析和比較,總結瞭 各個集閤類的特點,幫助讀者快速地掌握 Scala 集閤框架,並且可以作為日常 Scala 開發的參 考書。 《Scala 集閤技術手冊》適閤架構師、軟件開發工程師、測試人員以及其他對 Scala 集閤感興趣的相關人員閱讀。

作者簡介

晁嶽攀,2013.8 ? ThisTech 項目經理 專注於視頻廣告插入技術2007.10 ? 2013.7 Motorola 高級軟件工程師、項目經理 主要為美國*大的電視運行商Comcast, Time Warner,法國電信, 江蘇有綫,北京歌華等做有綫電視的視頻點播等2003 ? 2007 清華同方 開發清華同方ezONE開發平颱以及相關的中間件技術2000 ? 2003 北京方菱 公安係統相關軟件的研發

目錄

推薦序 iii

序 iv

第 1 章 Scala 集閤庫簡介 1

Scala 編程語言 1

Scala 集閤 2

誰應該閱讀此書 7

為什麼寫這本書 7

印刷體變化 7

內容概要 8

第 2 章 Traversable 9

初始化 Traversable 對象 10

集閤的靜態類型和類型擦除 12

對 Traversable 實例中每個元素執行操作(foreach) 13

平展一個 Traversable 實例 14

轉置 Traversable 集閤(transpose) 17

unzip 一個 Traversable 18

連接兩個 Traversable 到一個新的 Traversable 19

連接多個 Traversable 對象到一個新的 Traversable 21

利用偏函數篩選元素 22

對所有的元素應用一個函數,並將結果放入一個新的 Traversable 對象中 23

利用 scan 計算 Traversable 元素的階乘 24

使用指定的函數摺疊 Traversable 的元素 26

判斷一個 Traversable 非空 28

得到 Traversable 對象的特定的元素 29

得到 Traversable 對象的尾部 30

選擇 Traversable 的一段子集 31

選取 Traversable 對象的前 N 個元素 32

跳過開頭的前 N 個元素,選擇剩餘的元素 33

根據條件篩選元素 34

給 Traversable 對象的元素分組 35

檢查 Traversable 對象中的元素是否滿足條件 37

統計滿足斷言的元素個數 37

歸約操作 38

在 Traversable 對象上調用聚閤函數 40

基於 Traversable 對象生成字符串 41

集閤類型轉換 42

復製元素到一個數組 44

返迴一個 Traversable 對象的視圖 view 45

得到 Traversable 對象的底層實現 46

使用一個相同的元素填充元素 46

在某個值域上生成指定間隔的隊列 47

tabulate 48

生成空的 Traversable 對象 48

得到 Traversable 對象的串行對象和並行對象 49

第 3 章 Iterable 51

將 Iterable 對象分組 53

以滑動窗口的方式分組 Iterable 對象 54

zip 兩個集閤 55

zipAll 兩個長度不同的集閤 56

使用本身的索引 zip 一個 Iterable 集閤 57

檢查兩個 Iterables 是否包含相同的元素 57

得到尾部的 N 個元素 58

去掉尾部的 N 個元素 59

第 4 章 Seq 60

得到序列的索引集閤 61

序列的長度 61

得到指定索引的元素 62

尋找指定元素的索引 63

尋找滿足條件的元素索引 64

尋找指定的子序列 64

尋找滿足條件的子序列的長度 65

增加元素到序列中 65

替換序列中的元素 66

更新指定位置的索引 66

排序 67

反轉一個序列 68

序列是否包含某個前綴或者後綴 69

序列是否包含某子序列 69

檢查兩個序列對應的元素是否滿足斷言 69

集閤操作 70

去掉重復的元素 71

得到元素的各種排列 72

得到序列的指定長度的元素的組閤 72

將序列進行轉換 73

偏函數的應用 74

IndexedSeq 和 LinearSeq 75

Range 和 NumericRange 76

Vector 77

第 5 章 Set 80

檢查 Set 集閤是否包含元素 82

增加一個元素或者一組元素到 Set 集閤中 82

從 Set 集閤中去掉一個元素或一組元素 83

二元 Set 集閤運算 84

更新一個可變 Set 集閤的元素 85

剋隆 Set 集閤 86

SortedSet 86

BitSet 88

HashSet 90

ListSet 91

LinkedHashSet 92

第 6 章 Map 94

初始化 94

根據鍵值查找值 95

包含 96

增加新的鍵值對 97

刪除鍵 97

根據鍵更新它的值 98

得到鍵的集閤 99

得到值的集閤 99

遍曆 Map 集閤 100

如何將一個可變 Map 集閤轉換成不可變 Map 集閤 100

新的轉換函數 101

偏函數 101

剋隆 102

反轉 Map 的鍵值對 102

將一個 Set 集閤轉換成 Map 集閤 103

IntMap, LongMap 103

HashMap 104

SortedMap 和 immutable.TreeMap 104

immutable.ListMap,mutable.ListMap 105

mutable.LinkedHashMap 105

mutable.MultiMap 106

mutable.OpenHashMap 107

mutable.WeakHashMap 107

第 7 章 數組109

數組的初始化 110

數組的長度 112

更新數組 113

連接兩個數組 113

復製數組 113

生成等差數列 114

填充數組 114

tabulate 115

ArrayOps 115

Searching 116

WrappedArray 116

第 8 章 字符串(String 和 StringBuilder) 117

字符串方法 118

拼接字符串多次 119

把首字母大寫 119

字符串比較 120

字符串格式化 120

按照換行符分割字符串 123

正則錶達式 124

分割字符串 124

strip 字符串 125

集閤方法 126

字符串竄改(String Interpolation) 126

StringBuilder 128

第 9 章 緩衝器 129

增加元素 129

移除元素 130

Trim、clear 和 clone 131

ListBuffer, ArrayBuffer 132

RingBuffer 132

第 10 章 列錶 134

Nil, :: 134

初始化,以及 :: 和 ::: 操作符 135

模式匹配 136

MutableList 136

使用列錶實現快速排序 137

Option 137

第 11 章 棧和隊列 139

棧(Stack)139

ArrayStack . 141

不可變隊列(immutable.Queue) 143

可變隊列(mutable.Queue) 144

優先級隊列(PriorityQueue) 144

第 12 章 流 147

初始化:#:: 和 #::: 148

流相關類 150

記憶化(memoization) 150

棧溢齣(StackOverflowError) 150

OOM 問題 152

無限隨機數流 153

無限整數流 153

中綴錶達式和模式匹配 153

無限流 154

蓄水池抽樣算法 156

第 13 章 並行集閤 158

並行集閤的類型 159

可産生副作用的操作(Side-Effecting Operations) 160

非結閤操作(Non-Associative Operations)161

性能 162

串行集閤和並行集閤的轉換 163

不同集閤類型之間的轉換 164

並發集閤配置 165

第 14 章 Scala 集閤總結 168

相等(Equality) 168

性能 170

與 Java 集閤類的轉換 172

技巧和陷阱 174

發布訂閱類 177

for 推導式 (for comprehensions) 178

其他集閤庫 179

精彩書摘

推薦序

非常高興國內有第一本用中文原創的 Scala 書籍。Scala 儼然成為瞭大數據領域的明星語言, 它強大的抽象和並發能力,以及高效的集閤操作讓它抓住瞭大數據的這波浪潮。

提起 Scala 很多人可能會先想到多範式、高並發等特點,其實在集閤庫的設計上 Scala 也 是非常大膽進取的。比如引入瞭 Tuple、不可變集閤,對很多集閤內置瞭map/reduce/filter/fold 等操作,支持模式匹配,等等,讓數據處理得到瞭極大的簡化。

另外,Scala 在設計上對 Java 的一些“不一緻性”或“直觀性”做瞭修正,比如用 Any 類 型統一瞭 Java 裏的引用類型和基礎類型,用統一的 Int 替代瞭 Java 裏的 Integer 和 int 兩種類型, 並針對這種值類型 (value type) 的運行時 Boxing/Unboxing 做瞭優化。還有 Java 的數組類型 在設計上齣於計算的方便被設計為瞭天然支持協變特性,這在 Scala 2.X 版本得到瞭修正,去 掉瞭協變。對於相等性的比較讓直觀的“==”等價於“equals”。

Scala 裏的不可變集閤主要從函數式語言的集閤庫裏演化而來,一方麵在並發情況下這些 數據避免瞭競爭所需要的鎖的開銷,另一方麵在底層則通過共享數據降低瞭集閤在更新時生 成新對象的成本。配閤惰性計算 (lazy evaluation) 可以發揮更大的威力。當然 Scala 也不反對 使用可變集閤,在追求性能的地方你可以根據自己的具體情況做齣選擇。

在學習 Scala 的集閤庫時,建議深入地瞭解一些“關鍵”集閤的實現,比如 List,它跟 Java 裏的 List 有著完全不同的設計,深入體會這個源自 Lisp 的遞歸結構的數據類型所錶達的 含義,對學習 Scala 有非常大的幫助。

這本書非常務實,提供瞭很多例子,由淺入深地帶領你瞭解 Scala 的集閤領域。不管是對 大數據領域還是對日常工作都有很大的裨益。

王宏江 挖財架構師《 Scala 函數式編程》譯者


前言/序言

在我十六年多的編程生涯中,大部分項目中我都使用 Java 開發。Java 的生態圈非常的龐大而豐富,可以幫助我快速地實現項目的架構和開發。雖然感覺 Java 的語法有很多囉唆的地方, 也調研過 Groovy、Python 等編程語言,但還是覺得 Java 比較適閤開發工作。但是當我嘗試 使用 Scala 實現瞭一個高性能的消息係統的時候,我徹底地喜歡上瞭Scala,它簡潔的語法、豐 富的特性、麵嚮對象和函數式編程的美妙結閤都給我留下瞭深刻的印象。因為 Scala 是基於 JVM 的編程語言,它可以使用 Java 實現的庫,充分利用 Java 生態圈中已有的庫,而性能上又 不會有多少損失,所以我經常使用 Scala 做一些編程的工作。通過閱讀 Kafka 等 Scala 實現框架, 也促使我更加地堅信 Scala 的簡潔高效。


但是,完全掌握 Scala 的特性、熟練使用它的庫和編程方式進行開發卻不是一件容易的 事情。如果有 Java 編程經驗,則 Scala 入門會是一件很容易的事情,但是到專傢級彆卻是一 個麯摺的過程。這是因為,一、Scala 的語法相比其他語言,如 Java、Python、Go 等要復雜很多, 要想完全理解和掌握需要較長的時間。二、Scala 本身提供瞭非常多的庫,尤其是占重要部分 的集閤庫,隻有熟練掌握它們纔能輕鬆地應用到開發中。


對於第一個問題,現在已經有瞭多本介紹和學習 Scala 語法的書,尤其是剛剛齣版的 Scala 之父 Martin Odersky 編寫的《Programming in Scala》第三版,都是很好的學習和深入 瞭解 Scala 語法的圖書。通過編程實踐以及閱讀其他 Scala 開發的項目,也會很快地提高 Scala 語法的掌握程度。


對於第二個問題,尤其是 Scala 集閤框架的全麵介紹,並沒有太好的學習資料,相關的 Scala 書籍中會有一兩章關於 Scala 集閤的介紹,官方的網站上也有多篇關於 Scala 集閤的教程, 但是總體來說都是粗略地或者說局部地介紹瞭Scala集閤框架的類和方法, 看過之後若有所得, 但並不踏實,總是感覺沒有全麵地掌握 Scala 集閤。所以針對這個需求,我動手編寫瞭這本書, 主要目的就是編寫一本全麵、專門、深入地介紹 Scala 集閤的書與大傢分享。


作為一本專門介紹 Scala 集閤的圖書,它有一些其他技術圖書沒有的特色:


圖文並茂。 本書不僅提供瞭多幅插圖,列齣瞭並發 / 非並發集閤類和 Trait 的繼承關係, 還為最主要的集閤的方法提供瞭直觀的圖例,可以實現見圖識意。


歸類。 將 類 似 的方法放在一起介紹,比如 map 和 flatmap,scan、scanLeft 和 scanRight,size 和 length 等。


對比。 將容易混淆的方法進行對比,剖析它們之間的區彆,比如 head、last、init、 tail,reduce 和 fold 方法的區彆等。


代碼實例。通過最簡單的代碼類和方法的功能。代碼簡短而功能直接。


錶格。通過錶格進行匯總和知識整理。


全麵。本書詳細介紹瞭 Scala 集閤絕大部分的類和方法,對於一些類還介紹瞭它的曆 史優化過程和當前的問題。


深入。對於一些典型的集閤類,本書還深入介紹瞭它們的底層實現,通過底層實現瞭 解它們的特性和性能。


我期望能通過多種方式搭建起本書的架構,多方位地幫助讀者學習和掌握 Scala 集閤庫。 而且本書還能作為案頭的一本常用查找手冊,當對 Scala 集閤的類或者方法有疑惑時,可以通 過翻看本書找到答案。


聯係方式


盡管我盡量保持本書內容的準確性,每一個方法和例子都編寫測試過,但是因為 Scala 集閤框架的復雜和知識點比較多,加之作者水平有限,疏漏和錯誤在所難免,懇請廣大讀者 批評指正。如果你發現瞭錯誤或好的建議,也可以聯係我。我的聯係方式如下:


郵箱:oldnest@gmail.com


新浪微博:colobu


緻謝


特彆感謝電子工業齣版社的編輯張春雨,沒有你的努力和辛苦工作,就不會有本書順利的 齣版。沒有你的激勵,可能本書的內容隻能三三兩兩地散落在我的筆記或者博客中,不能集 結齣版。


感謝我的老婆和兒子。寫書占用瞭我大部分的業餘時間,不能花更多的時間陪伴你們。 春節的時候也隻能讓你們自己迴娘傢,給我獨自的時間寫稿和修改,沒有你們的理解和支持, 我也不能安心地寫作。


謝謝閱讀本書的朋友,如果沒有你們對相關知識的渴求,也就不會有本書的編寫。你們 對 Scala 的喜愛,對 Scala 集閤框架的知識的渴求,就是我寫本書最大的動力。


Scala集閤技術手冊 下載 mobi epub pdf txt 電子書 格式

Scala集閤技術手冊 mobi 下載 pdf 下載 pub 下載 txt 電子書 下載 2024

Scala集閤技術手冊 下載 mobi pdf epub txt 電子書 格式 2024

Scala集閤技術手冊 下載 mobi epub pdf 電子書
想要找書就要到 圖書大百科
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

用戶評價

評分

看瞭三分之一,挺清晰的,scala的集閤本身很復雜,需要一本這樣的書

評分

基礎學習,還不錯。幫同事買的,送貨很快。

評分

是本好書,值得推薦

評分

基礎學習,還不錯。幫同事買的,送貨很快。

評分

對集閤方麵的知識講的很詳細

評分

講集閤的,集閤是scala的重點

評分

還不錯, 實用, 能省好多學習時間

評分

看瞭三分之一,挺清晰的,scala的集閤本身很復雜,需要一本這樣的書

評分

不錯

類似圖書 點擊查看全場最低價

Scala集閤技術手冊 mobi epub pdf txt 電子書 格式下載 2024


分享鏈接




相關圖書


本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

友情鏈接

© 2024 book.teaonline.club All Rights Reserved. 圖書大百科 版權所有