使用Guava编写优雅代码
来源:互联网 发布:手机淘宝神笔使用教程 编辑:程序博客网 时间:2024/05/21 17:29
What is Guava
这个Guava当然不是指水果,Guava 是来自Google的工具类库集合,包含了collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, Math等等。
Why Guava
Guava有点类似于Apache Commons库,两者之间的区别在Stackoverflow上已经很好的回答了这个问题,总结来说就是Guava相对来说设计更优秀、文档齐全、代码质量高、社区更活跃,Guava更加“Morden”。如果你做Java开发,就该把Guava加入到你的项目中。
NOTE: This image was resized. To view it full-size, click on the image.
Using Guava
Maven
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version></dependency>
或直接到 Maven中央库下载jar包。
Object common methods
public class Employee implements Comparable { private String name; private Integer age; private Job job; // methods ... public int compareTo(Employee other) { return ComparisonChain.start() // 以英文字母(从a到z)的自然顺序,NULL值放在最后 .compare(this.name, other.name, Ordering.natural().nullsLast()) // 以数字的反序(从大到小),NULL值处于最后 .compare(this.age, other.age, Ordering.natural().reverse().nullsLast()) .compare(this.job, other.job, Ordering.natural().nullsLast()) .result(); } @Override public int hashCode() { return Objects.hashCode(name, age, job); } @Override public String toString () { return MoreObjects.toStringHelper(this) .omitNullValues() .add("name", name) .add("age", age) .add("job", job) .toString(); }
Lists and MutiMap
List< Map< String, Object> > maps = Lists.newArrayList(); List< String > langs = Lists.newArrayList("中文","English","日本語",null); String lang = Joiner.on("|").useForNull("Unkown").join(langs); // 中文|English|日本語|Unkown System.out.println(lang); // Like Map< Job, Collection< Employee > > Multimap< Job, Employee > multimap = ArrayListMultimap.create(); multimap.put(Job.CEO, new Employee("Tom",45)); multimap.put(Job.DESIGNER, new Employee("Jack",24)); multimap.put(Job.DEVELOPER, new Employee("Alice", 31)); multimap.put(Job.DEVELOPER, new Employee("Jhone", 25)); multimap.put(Job.DEVELOPER, new Employee("Jim", 27));
更多代码示例可以关注我的Glist。
More Resource
- 首要推荐官方的WIKI,这个最新最全,并发编程网上有中文的翻译,但是中文翻译排版很不好,英文不好又想参考官网文档的可以看看。
- OSchina上有几篇翻译不错的教程:
Guava 教程1-使用 Google Collections,Guava,static imports 编写漂亮代码
Guava 教程2-深入探索Google Guava 库
Guava 教程3-Java 的函数式编程,通过 Google Collections 过滤和调用
Guava 教程4-条件,多重映射和分片 - “使用Google Guava来编写优雅的代码”系列,对Guava的集合做了简单介绍。
集合1
集合2
集合3(Multimap)
集合4(BiMap) - 博客园里的某一系列学习笔记。
- ITEYE上的一篇Google Guava 库用法整理,使用Guava前后的代码对比很直观,没有接触过的童鞋推荐首先看看这篇。
- Speaker Deck上的这个Guava By Example也是很赞,同样也是对使用Guava前后的代码做了直观的对比。
- Oschina上转载的另一篇不错的文章:使用 Google Guava 美化你的 Java 代码。
- 如果以上都满足不了你的求知欲,可以看看[PACKT]出版的这本Getting Started with Google Guava(电子版网上有没有免费下载什么的我才不知道呢~哼!)。
0 0
- 使用Guava编写优雅代码
- 使用Google Guava来编写优雅的代码一Guava简介
- (java开源框架)使用Google Guava来编写优雅的代码一Guava简介
- 使用Google Guava来编写优雅的代码一Guava简介
- 使用Google Guava来编写优雅的代码一Guava简介
- Java代码优雅之道-Guava
- Java代码优雅之道-Guava
- Google Guava--让java代码更加优雅
- Strings类的简单使用-代码优雅之道Guava(一)
- Files类的简单使用-代码优雅之道Guava(二)
- Files类的简单使用-代码优雅之道Guava(二)
- Guava 教程1-使用 Google Collections,Guava,static imports 编写漂亮代码
- 怎样编写出优雅代码
- Guava学习笔记:Optional优雅的使用null
- Guava学习笔记:Optional优雅的使用null
- Guava学习笔记:Optional优雅的使用null
- Guava学习笔记【2】:Optional优雅的使用null
- 教你编写优雅的JavaScript代码
- IntelliJ IDEA解决问题汇总
- directcompute
- Vim操作
- C语言课程设计:小型电子词典
- ENCTYPE="multipart/form-data"
- 使用Guava编写优雅代码
- TCP/IP-TCP
- Linux运维常用命令
- Atom 必装插件
- Intellij IDEA 创建Web项目并在Tomcat中部署运行
- SSS
- linux下文件管理
- RobotStudio软件及ABB机器人相关问题
- jquery resize 如何监听div或其它元素的resize事件