代码改变世界

随笔分类 -  guava

使用Guava来计算笛卡尔积

2014-03-27 15:02 by Rollen Holt, 3899 阅读, 收藏, 编辑
摘要: 以前做项目的时候计算笛卡尔积的时候,总是使用各种for循环来嵌套,最后往往在Sonar代码检查的时候总是会报警说for循环嵌套过深。今天才知道Guava原来已经为我们提供了优雅的计算笛卡尔积的方法。比如我们要计算3个List的笛卡尔积,每个list的内容都是['a', 'b', 'c'], 请看下面的代码:public class CartesianProductUtil { public static void main(String[] args) { ImmutableSet charList = ImmutableSet.of(' 阅读全文

Guava的异常工具类--Throwables

2014-01-20 23:22 by Rollen Holt, 2393 阅读, 收藏, 编辑
摘要: Guava为我们提供了一个非常方便并且实用的异常处理工具类:Throwables类。这个类的API可以参见:http://docs.guava-libraries.googlecode.com/git-history/release/javadoc/com/google/common/base/Throwables.html这个类的官方英文简述:https://code.google.com/p/guava-libraries/wiki/ThrowablesExplained下面是本人的一些简要总结:我们在日常的开发中遇到异常的时候,往往需要做下面的几件事情中的一些:1. 将异常信息存入数据库 阅读全文

Guava集合-BiMap

2013-11-10 23:20 by Rollen Holt, 1275 阅读, 收藏, 编辑
摘要: 在本篇文章中我们将介绍Guava集合中的BiMap这个接口.com.google.common.collectInterface BiMapBiMap接口的父接口是Map。而BiMap接口的实现类有:EnumBiMap,EnumHashBiMap,HashBiMap,ImmutableBiMap这四个。我们可以通过源码可以看到BiMap接口的定义为:@GwtCompatiblepublic interface BiMapextends Map如果我们用一句话来介绍BiMap的话,那就是:“它就是一个双向映射的Map”。我们可以通过key找到value,反之也能够根据value找到对应的key。 阅读全文

Guava 集合框架

2013-10-29 23:33 by Rollen Holt, 5445 阅读, 收藏, 编辑
摘要: 在本系列中我们首先来学习一些Guava的集合框架,也就是这个package:com.google.common.collect 在这个包下面有一些通用的集合接口和一些相关的类。 集合类型: BiMap 它是java.util.Map接口的一个扩展,它的特性就是它的key和value都是唯一的并且是一一对应的。也就是说“可逆”。简单的描述就是根据key能拿到唯一的value,根据... 阅读全文

Guava 学习计划

2013-10-29 22:50 by Rollen Holt, 1276 阅读, 收藏, 编辑
摘要: Guava这个框架,我想参加过工作了Java程序员都应该不会陌生,这个框架甚至比Apache Commons Lang3框架更受Java程序员的喜欢。但是遗憾的是怎么优秀和成熟的框架,在国内我居然没有找到中文的文档。有时候也仅仅是对一些类的使用进行介绍,也就说并没有一个完整的中文文档。而且说实话,我对Guava其实并不是太熟悉,但是最近工作中一直在使用它,所以我觉得与其等别人翻译个完整的(不知道得等到猴年马月),所以还不如自己动手,丰衣足食。所以我会在每天下班之后抽时间翻译一篇Guava文档。这对我来说是一个巨大的挑战,但是也充满乐趣。同时在翻译的过程中我也会加入一些我经常遇到的问题以及如何使 阅读全文