-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

Scala集合技術手冊

( 簡體 字)
作者:晁岳攀類別:1. -> 程式設計 -> Scala
譯者:
出版社:電子工業出版社Scala集合技術手冊 3dWoo書號: 44320
詢問書籍請說出此書號!

缺書
NT售價: 290

出版日:6/1/2016
頁數:184
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121287763
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:


在我十六年多的編程生涯中,大部分項目中我都使用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集合的圖書,它有一些其他技術圖書沒有的特色:
y
圖文并茂。 本書不僅提供了多幅插圖,列出了并發/非并發集合類和Trait的繼承關系,還為最主要的集合的方法提供了直觀的圖例,可以實現見圖識意。

v
y
歸類。 將類似的方法放在一起介紹,比如 map和flatmap,scan、scanLeft和scanRight,size和length等。
y
對比。 將容易混淆的方法進行對比,剖析它們之間的區別,比如head、last、init、tail,reduce和fold方法的區別等。
y
代碼實例。通過最簡單的代碼類和方法的功能。代碼簡短而功能直接。
y
表格。通過表格進行匯總和知識整理。
y
全面。本書詳細介紹了Scala集合絕大部分的類和方法,對于一些類還介紹了它的歷史優化過程和當前的問題。
y
深入。對于一些典型的集合類,本書還深入介紹了它們的底層實現,通過底層實現了解它們的特性和性能。
我期望能通過多種方式搭建起本書的架構,多方位地幫助讀者學習和掌握Scala集合庫。而且本書還能作為案頭的一本常用查找手冊,當對Scala集合的類或者方法有疑惑時,可以通過翻看本書找到答案。
聯系方式
盡管我盡量保持本書內容的準確性,每一個方法和例子都編寫測試過,但是因為Scala集合框架的復雜和知識點比較多,加之作者水平有限,疏漏和錯誤在所難免,懇請廣大讀者批評指正。如果你發現了錯誤或好的建議,也可以聯系我。我的聯系方式如下:
郵箱:oldnest@gmail.com
新浪微博:colobu
致謝
特別感謝電子工業出版社的編輯張春雨,沒有你的努力和辛苦工作,就不會有本書順利的出版。沒有你的激勵,可能本書的內容只能三三兩兩地散落在我的筆記或者博客中,不能集結出版。
感謝我的老婆和兒子。寫書占用了我大部分的業余時間,不能花更多的時間陪伴你們。春節的時候也只能讓你們自己回娘家,給我獨自的時間寫稿和修改,沒有你們的理解和支持,我也不能安心地寫作。
謝謝閱讀本書的朋友,如果沒有你們對相關知識的渴求,也就不會有本書的編寫。你們對Scala的喜愛,對Scala集合框架的知識的渴求,就是我寫本書最大的動力。
內容簡介:

《Scala集合技術手冊》是首部全面介紹Scala集合框架的圖書,它基于最新的Scala 2.11編寫,深入全面地介紹了Scala集合框架的集合類和方法,通過圖例、代碼示例、表格等多種方式多方位地介紹集合類的方法和實現,并且對相關的類型的性能進行分析和比較,總結了各個集合類的特點,幫助讀者快速地掌握Scala集合框架,并且可以作為日常Scala開發的參考書。

目錄:

推薦序 . . . . 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
目錄vii
選擇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
viii 目錄
尋找指定的子序列 . . . . 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
目錄ix
包含 . . . . . 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
x 目錄
第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
目錄xi
第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
序: