{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
free FREE

Change Your Zip Code

Inventory information and delivery speeds may vary for different locations.

Location History

{{email ? __('Got it!') : __('Restock Alert')}}

We will notify you by email when the item back in stock.

Cancel
Yami

Jingdong book

Scala集合技术手册

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

Scala集合技术手册

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
Ends in
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
Sale ends in
Sale will starts after Sale ends in
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) Details
Best before

Currently unavailable.

We don't know when or if this item will be back in stock.

Unavailable in your area.
Sold Out

Details

Full product details
Editer Recommend

√ Scala集合库不可多得的中文资料

√ 作为Scala的制胜法宝本书教你如何驾驭

√ 面向实际问题用示例代码讲解类的使用和原理

√ 全新角度实现基本数据结构是提升功力的不二法门

Content Description

《Scala 集合技术手册》是一本全面介绍 Scala 集合框架的图书,它基于新的 Scala 2.11 编写,深入全面地介绍了 Scala 集合框架的集合类和方法,通过图例、代码示例、表格等多种 方式多方位地介绍集合类的方法和实现,并且对相关的类型的性能进行分析和比较,总结了 各个集合类的特点,帮助读者快速地掌握 Scala 集合框架,并且可以作为日常 Scala 开发的参 考书。 《Scala 集合技术手册》适合架构师、软件开发工程师、测试人员以及其他对 Scala 集合感兴趣的相关人员阅读。

Author Description

晁岳攀,2013.8 ? ThisTech 项目经理 专注于视频广告插入技术2007.10 ? 2013.7 Motorola 高级软件工程师、项目经理 主要为美国*大的电视运行商Comcast, Time Warner,法国电信, 江苏有线,北京歌华等做有线电视的视频点播等2003 ? 2007 清华同方 开发清华同方ezONE开发平台以及相关的中间件技术2000 ? 2003 北京方菱 公安系统相关软件的研发

Catalogue

推荐序 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

Book Abstract

推荐序

非常高兴国内有第一本用中文原创的 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 函数式编程》译者


Introduction

在我十六年多的编程生涯中,大部分项目中我都使用 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 集合框架的知识的渴求,就是我写本书最大的动力。

Specifications

Brand Jingdong book
Brand Origin China

Disclaimer

Product packaging, specifications and price are subject to change without notice. All information about the products on our website is provided for information purposes only. Please always read labels, warnings and directions provided with the product before use.

View Full Terms of Use
Add to favorites
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
Quantity
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
Sold by JD@CHINA
Ship to
{{ __("Ship to United States only") }}
Free shipping over 69
Genuine guarantee

Added to Cart

Keep Shopping

More to Consider

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

Coupons

{{ coupon.coupon_name_new | formatCurrency }}
Clip Clipped Over
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
Expires soon {{ formatTime(coupon.use_end_time) }}

Share this item with friends

Cancel

Yami Gift Card

Get this exclusive deal when paying with gift card

Terms and Conditions

Gift card deals are special offers for selected products;

The gift card deals will automatically be activated if a customer uses gift card balance at check out and the balance is sufficient to pay for the total price of the shopping cart products with gift card deals;

You will not be able to activate the gift card deals if you choose other payment methods besides gift card. The products will be purchased at their normal prices;

If your account balance is not enough to pay for the products with gift card deals, you can choose to reload your gift card balance by clicking on the Reload button at either shopping cart page or check out page;

Products that have gift card deals can be recognized by a special symbol showing 'GC Deal';

For any additional questions or concerns, please contact our customer service;

Yamibuy reserves the right of final interpretation.

Sold by Yami

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

Yami is committed to provide our customers with a peace of mind when purchasing from us. Most items shipped from Yamibuy.com can be returned within 30 days of receipt of shipment (For Food, Beverages, Snacks, Dry Goods, Health supplements, Fresh Grocery and Perishables Goods, within 7 days of receipt of shipment due to damages or quality issues; To ensure that every customer receives safe and high-quality products, we do not provide refunds or returns for beauty products once they have been opened or used, except in the case of quality issues; Some products may have different policies or requirements associated with them, please see below for products under special categories, or contact Yami Customer Service for further assistance).
Thank you for your understanding and support.

Learn More

Sold by Yami

Terms and Conditions of Yami E-Gift Card

If you choose “Redeem automatically” as your delivery method, your gift card balance will be reload automatically after your order has been processed successfully;

If you choose “Send to Email”as your delivery method, the card number and CVV will be sent to the email address automatically;

Any user can use the card number and CVV to redeem the gift card, please keep your gift card information safely. If you have any trouble receiving email, please contact Yami customer service;

Yami gift card can be used to purchase both Yami owned or Marketplace products;

Yami gift card will never expire;

Yami gift card balance does not have to be used up at once;

All rights reserved by Yami.

Return Policy

Gift card that has already been consumed is non-refundable.

Sold by JD@CHINA

Service Guarantee

Yami Free Shipping over $49
Yami Easy Returns
Yami Ships from United States

Shipping

  • United States

    Standard Shipping is $5.99 (Excluding Alaska & Hawaii). Free on orders of $49 or more.

    Local Express is $5.99 (Available in Parts of CA, NJ, MA & PA). Free on orders of $49 or more.

    2-Day Express (Includes Alaska & Hawaii) starts at $19.99.

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Sold by JD@CHINA

Service Guarantee

Yami Cross-store Free Shipping over $69
Yami 30-days Return

Yami-China FC

Yami has a consolidation warehouse in China which collects multiple sellers’ packages and combines to one order. Our Yami consolidation warehouse will directly ship the packages to your door. Cross-store free shipping over $69.

Return Policy

You may return products within 30 days upon receiving the products. Sellers take responsibilities for any wrong shipment or missing items. Packing needs to be unopened for any other than quality issues return. We promise to pack carefully, but because goods are taking long journey to destinations, simple damages to packaging may occur. Any damages not causing internal goods quality problems are not allowed to return. If you open the package and any quality problem is found, please contact customer service within three days after receipt of goods.

Shipping Information

Yami Consolidation Service Shipping Fee $9.99(Free shipping over $69)

Sellers in China will ship their orders within 1-2 business days once the order is placed. Packages are sent to our consolidation warehouse in China and combined there. Our Yami consolidation warehouse will directly ship the packages to you via UPS. The average time for UPS to ship from China to the United States is about 10 working days and it can be traced using the tracking number. Due to the pandemic, the delivery time may be delayed by about 5 days. The package needs to be signed by the guest. If the receipt is not signed, the customer shall bear the risk of loss of the package.

Sold by JD@CHINA

Service Guarantee

Free shipping over 69
Genuine guarantee

Shipping

Yami Consolidated Shipping $9.99(Free shipping over $69)


Seller will ship the orders within 1-2 business days. The logistics time limit is expected to be 7-15 working days. In case of customs clearance, the delivery time will be extended by 3-7 days. The final receipt date is subject to the information of the postal company.

Yami Points information

All items are excluding from any promotion or points events on Yamibuy.com

Return Policy

You may return product within 30 days upon receiving the product. Items returned must be new in it's original packing, including the original invoice for the purchase. Customer return product at their own expense.

Yami

Download the Yami App

Back Top

Recommended for You

About the brand

Jingdong book

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

Reviews{{'('+ commentList.posts_count + ')'}}

Have your say. Be the first to help other guests.

Write a review
{{ totalRating }} Write a review
  • {{i}} star

    {{i}} stars

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}Show Less

{{ strLimit(comment,800) }}Show more

Show Original

{{ comment.content }}

Yami
Show All

{{ formatTime(comment.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

No related comment~

Review

Yami Yami

{{ showTranslate(commentDetails) }}Show Less

{{ strLimit(commentDetails,800) }}Show more

Show Original

{{ commentDetails.content }}

Yami
Show All

{{ formatTime(commentDetails.in_dtm) }} VERIFIED PURCHASE {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Comments{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}Show Less

{{ strLimit(reply,800) }}Show more

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

Please write at least one word

Cancel

That’s all the comments so far!

Write a review
How would you rate this item?

Please add your comment.

  • A nice nickname will make your comments more popular!
  • The nickname in your account will be changed to the same as here.
Thanks for your review
Our community rely on great reviews like yours to find the best of Asia.

Report

If you find this content inappropriate and think it should be removed from the Yami.com site, let us know please.

Cancel

Are you sure to delete your review?

Cancel

You’ve Recently Viewed

About the brand

Jingdong book