简介

  Guava,中文是石榴的意思,Guava项目,是基于java的Google的开源的工具类库,包含了许多被Google的java项目广泛依赖的核心库,

例如:集合、缓存、原生类型支持、并发库、通用注解、字符串处理、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。

为什么项目开发中我们要选择Guava,借用网友的回答:
•瓜娃是java API蛋糕上的冰激凌(精华)
•高效设计良好的API
•被google的开发者设计,实现和使用
•遵循高效的java这本书的好的语法实践
•使代码更刻度,简洁,简单
•使用java 1.5的特性
•流行的API,动态的开发
•它提供了大量相关的应用类,集合,多线程,比较,字符串,输入输出,缓存,网络,原生类型,数学,反射等等
•百分百的单元测试,被很多的项目使用,帮助开发者专注业务逻辑而不是写java应用类
•节省时间,资源,提高生产力
•我的目的是为基本的java特征提供开源代码的支持,而不是自己再写一个
•ApacheCommon库Apache是一个很好的成熟的库,但是不支持泛型,Apache对早起的java版本很有用-1.5之前的
•java7,java8 最新的java支持一些guava的API

在项目开发中适当的场景灵活运用Guava,可使我们省去复杂的数据处理,代码简介易用,不易出错,

代码可读性健壮性增强,让我们有更多时间专注业务的处理,总之就是使我们的代码更加的优雅。

Maven依赖

 <dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>

字符串检查工具

 /**
* Guava Strings工具类的使用,null和empty的判断与转化
* @author chenleixing
*/
public void testStrings(){
Strings.isNullOrEmpty("");//返回true
Strings.nullToEmpty(null);//""
Strings.nullToEmpty("chen");//返回"chen"
Strings.emptyToNull("");//返回null
Strings.emptyToNull("chen");//返回"chen" Strings.commonPrefix("aaab", "aac");//"aa"否则返回""
Strings.commonSuffix("aaac", "aac");//"aac"否则返回""
}

NULL值检查

先决条件检查

 //判断参数1的布尔值,如果为假抛出第二个参数的异常信息IllegalArgumentException
Preconditions.checkArgument(i>0,"Argument was %s but expected nonnegative");

判断对象是否为null

 //判断参数1的布尔值,如果为null 抛出第二个参数的异常信息NullPointerException
Preconditions.checkNotNull(null,"该对象为Null");

操作集合

之前

     Map<String, Map<Long, List<String>>> map = new HashMap<String, Map<Long,List<String>>>();  

用Guava

 Map<String, Map<Long, List<String>>> map = Maps.newHashMap();

 之前

 List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");

现在

 List<String> list =Lists.newArrayList("a","b","c","d");

参考:

Guava 官方教程(中文版)http://ifeve.com/google-guava/

Guava常用方法的更多相关文章

  1. Guava的常用方法示例

    Guava Maven Dependency <dependency> <groupId>com.google.guava</groupId> <artifa ...

  2. java代码之美(3)---guava 复写Object常用方法

    guava 复写Object常用方法 Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方 ...

  3. java代码(3)----guava复写Object常用方法

    guava复写Object常用方法 Guava是一个Google的基于java1.6的类库集合的扩展项目,这个库提供用于集合,缓存,支持原语,并发性,字符串处理,I/O和验证的实用方法, 这些高质量的 ...

  4. Guava学习笔记(3):复写的Object常用方法

    转自:http://www.cnblogs.com/peida/p/Guava_Objects.html 在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals ...

  5. Guava学习笔记:复写的Object常用方法

    在Java中Object类是所有类的父类,其中有几个需要override的方法比如equals,hashCode和toString等方法.每次写这几个方法都要做很多重复性的判断, 很多类库提供了覆写这 ...

  6. Guava学习笔记(一)概览

    Guava是谷歌开源的一套Java开发类库,以简洁的编程风格著称,提供了很多实用的工具类, 在之前的工作中应用过Collections API和Guava提供的Cache,不过对Guava没有一个系统 ...

  7. guava学习--Objects

    转载:https://my.oschina.net/realfighter/blog/349821 Java中的Object类是所有Java类的超类(也就是祖先),所有对象都实现Object类中的方法 ...

  8. Guava学习笔记:Google Guava 类库简介

    http://www.cnblogs.com/peida/tag/Guava/ Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, cachin ...

  9. Guava学习笔记目录

    Guava 是一个 Google 的基于java1.6的类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libra ...

随机推荐

  1. angularjs1.6.4中使用ng-table出现data.slice is not a function的问题

    这个问题困扰了我2个小时. 项目中angularjs的版本从1.4.8升级到1.6.4,升级完成之后,发现ng-table不能用了.主要报错信息是ng-table中data.slice is not ...

  2. VxWorks各部分初始化流程

    一)configAll.h中定义所有定置系统配置的宏 INCLUDED SOFTWARE FACILITIES:定义了基本组件: EXCLUDED FACILITIES:定义了扩充组件,缺省不包括: ...

  3. Caused by: java.lang.ClassNotFoundException: org.springframework.expression.ExpressionParser

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  4. MySQL插入数据时插入无效的列

    1.错误描述 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field list' ...

  5. ASP.net里不让浏览器缓存代码和Session使用注意事项

    //不让浏览器缓存             context.Response.Buffer = true;             context.Response.ExpiresAbsolute = ...

  6. hdu5945 Fxx and game

    单调队列学习 其实和单调栈类似 都是因为有些元素是没有价值的可以舍去 #include<bits/stdc++.h> using namespace std; #define sz(X) ...

  7. Crash CodeForces - 417B

    During the "Russian Code Cup" programming competition, the testing system stores all sent ...

  8. Xshell配色为ubuntu风格

    背景 为了远程连接服务器,用Xshell作为连接工具,因为好(mian)用(fei),服务器是ubuntu的,因此看不习惯Xshell自带的黑白色,下面给出了ubuntu的配色方案,使用的时候直接导入 ...

  9. 关于transform的3D变形函数

    继续transform的3D用法: translate3d(x,y,z)定义3D转换 transformX(x)只用x轴的值进行转换: transformY(y)只用y轴的值进行转换: transfo ...

  10. Qtree3题解(树链剖分(伪)+线段树+set)

    外话:最近洛谷加了好多好题啊...原题入口 这题好像是SPOJ的题,挺不错的.看没有题解还是来一篇... 题意: 很明显吧.. 题解: 我的做法十分的暴力:树链剖分(伪)+线段树+\(set\)... ...