2019年3月30日

字符串处理:分割,连接,填充

摘要: 连接器[Joiner] 用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluent风格的Joiner让连接字符串更简单。 Joiner joiner = Joiner.on("; ").skipNulls(); return joiner.jo 阅读全文

posted @ 2019-03-30 22:05 胡子就不刮 阅读(893) 评论(0) 推荐(0) 编辑

集合-集合扩展工具类

摘要: Forwarding装饰器 针对所有类型的集合接口,Guava都提供了Forwarding抽象类以简化装饰者模式的使用。 Forwarding抽象类定义了一个抽象方法:delegate(),你可以覆盖这个方法来返回被装饰对象。所有其他方法都会直接委托给delegate()。例如说:Forwardin 阅读全文

posted @ 2019-03-30 21:54 胡子就不刮 阅读(149) 评论(0) 推荐(0) 编辑

集合-强大的集合工具类:java.util.Collections中未包含的集合工具

摘要: 任何对JDK集合框架有经验的程序员都熟悉和喜欢java.util.Collections包含的工具方法。Guava沿着这些路线提供了更多的工具方法:适用于所有集合的静态方法。这是Guava最流行和成熟的部分之一。 我们用相对直观的方式把工具类与特定集合接口的对应关系归纳如下: 在找类似转化、过滤的方 阅读全文

posted @ 2019-03-30 17:56 胡子就不刮 阅读(511) 评论(0) 推荐(0) 编辑

集合-新集合类型

摘要: Guava引入了很多JDK没有的、但我们发现明显有用的新集合类型。这些新类型是为了和JDK集合框架共存,而没有往JDK集合抽象中硬塞其他概念。作为一般规则,Guava集合非常精准地遵循了JDK接口契约。 Multiset 统计一个词在文档中出现了多少次,传统的做法是这样的: 这种写法很笨拙,也容易出 阅读全文

posted @ 2019-03-30 17:32 胡子就不刮 阅读(277) 评论(0) 推荐(0) 编辑

集合-不可变集合

摘要: 不可变集合 范例 为什么要使用不可变集合 不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的; 不可变对象被多个线程调用时,不存在竞态条件问题 不可变集合不需要考虑变化,因此可以节省时间和空间。所有不可变的集合都比它们的可变形式有更好的内存利用率(分析和测试细节); 不可变对 阅读全文

posted @ 2019-03-30 17:19 胡子就不刮 阅读(204) 评论(0) 推荐(0) 编辑

基本工具

摘要: 使用和避免null Optional Guava用Optional<T>表示可能为null的T类型引用。一个Optional实例可能包含非null的引用(我们称之为引用存在),也可能什么也不包括(称之为引用缺失)。它从不说包含的是null值,而是用存在或缺失来表示。但Optional从不会包含nul 阅读全文

posted @ 2019-03-30 16:38 胡子就不刮 阅读(196) 评论(0) 推荐(0) 编辑

导航