Java基础、中级、高级、架构面试资料

Google Guava库用法大全

JAVA herman 3915浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

写java代码写多了,你就会发现java代码或语法有很多可以改进的地方,包括一些语法上的重复定义等。重复的发明轮子,就会让大家感到厌烦。为了不再忍受痛苦,我们可以总结自己的类库,随着时间的推移我们需要不断的对类库进行升级维护。这对于大多数人来说,是灾难性的。这是Google公司站出来了,guava正是出于这样的目的而来解放我们的痛苦的。
Guava是一个开源的Java库,其中的核心库都是由谷歌提供的。Guava库提供了用于集合、缓存、原生类型、并发、常用注解、基本字符串操作和I/O等方法。
Guava的好处
    标准化 – Guava库是由谷歌托管。
    高效 – 可靠,快速和有效的扩展JAVA标准库
    优化 -Guava库经过高度的优化。
    函数式编程 -增加JAVA功能和处理能力。
    实用程序 – 提供了经常需要在应用程序开发的许多实用程序类。
    验证 -提供标准的故障安全验证机制。
    最佳实践 – 强调最佳的做法。

下面举例说说Guava的实际用法:
针对可变集合的声明

Map<String, Map<Long, List<String>>> java = new HashMap<String, Map<Long,List<String>>>();  
Map<String, Map<Long, List<String>>> guava = Maps.newHashMap();

针对不可变集合

List<String> list = new ArrayList<String>();
list.add("java");
list.add("b");
list.add("c");
list.add("d");
ImmutableList<String> of = ImmutableList.of("guava", "b", "c", "d");
ImmutableMap<String,String> map = ImmutableMap.of("xttblog", "业余草", "key2", "value2");

ImmutableList.copyOf

public java(Address from, Address to, List<Step> steps) {
    this.from = from;
    this.to = to;
    this.steps = Collections.unmodifiableList(new ArrayList<Step>(steps));
}
public guava(Address from, Address to, List<Step> steps) {
    this.from = from;
    this.to = to;
    this.steps = ImmutableList.of(steps);
}

Iterables.concat() 

public boolean java() {
    List<Xttblog> list = new ArrayList<Xttblog>();
    list.addAll(getList0());
    list.addAll(getList1());
    for (Xttblog item : list) {
        if (item.text() == "业余草") {
            return true;
        }
    }
    return false;
}
public boolean guava() {
    for (Xttblog item : Iterables.concat(getList0(), getList1())) {
        if (item.text() == "业余草") {
            return true;
        }
    }
    return false;
}

字符串比较

if(str !=null && !str.isEmpty()){
    //java
}
if(!Strings.isNullOrEmpty(str)){
    //guava
}

Jioner

String join="-",java= "2016"+join+"04"+join+"23";
String guava = Joiner.on(join).join("2016", "04", "23");

Splitter

//java
String str="java,guava,业余草";
String [] java=str.split(",");
//Guava
Splitter.on(",").split("java,guava,业余草"); //结果返回Iterable<String>  
//将结果中的元素trim   
Splitter.on(",").trimResults().split("java , guava,业余 草");   
//忽略空字符串
Splitter.on(",").omitEmptyStrings().split("java,guava,,业余草"); 

Preconditions

if (count <= 0) {//java
    throw new IllegalArgumentException("must be positive: " + count);  
} 
//guava
Preconditions.checkArgument(count > 0, "must be positive: %s", count);

I/O操作

InputStream from;
OutputStream to;
//...
ByteStreams.copy(from,to);
Reader from;
Writer to;
//...
CharStreams.copy(from, to);
File from;
File to;
//...
Files.copy(from, to);
//删除文件夹下的内容(包括文件与子文件夹)
Files.deleteDirectoryContents(File directory); 
//删除文件或者文件夹
Files.deleteRecursively(File file); 
//移动文件
Files.move(File from, File to); 

版权声明:本文为博主原创文章,未经博主允许不得转载。原文地址:http://www.xttblog.com/?p=457

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Google Guava库用法大全