Guava库介绍

简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/45420415 一、什么是...
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/45420415

一、什么是Guava

1)Guava库是一个适合很多Java项目的通用工具库
2)Guava工具库中包含了:集合Collection、并发Concurrency、原语Primitive、反射Reflection、比较Comparison、I/O操作、哈希Hash、网络Networking、字符串String、数学函数Math、缓存Caching、内存中的发布/订阅……以及各种级别的数据类型
3)需要JDK 6以上版本

二、函数接口

在深入Guava库之前,我们先了解其函数接口,了解这些函数接口有助于我们更好地掌握Guava库。

函数接口:

1)函数接口是定义了单个方法的接口
2)函数接口包含了众所周知的单个抽象方法(SAM,Single Abstract Method)
3)函数接口为Java 8 Lambda表达式提供了基础
函数接口是很酷的:你指定任何一个接口都可以作为方法参数,还可以在Java 8中传递Lambda表达式
4)函数接口可以被当作回调对象

三、函数接口的一些例子

下面的例子是Java 8的函数接口。

1、函数接口带单个方法参数

@FunctionalInterface{
    public boolean check(Order o);
}

接着我们可以创建Lambda表达式,使用上面的函数接口。

IOrder newOrder = (Order o) -> o.getStatus().equals("NEW");

或者

IOrder newOrder = (o) ->o.getStatus().equals("NEW");
说明:

1)表达式右边是一个简单的检查方法的内容——检查传递到Order对象的状态。
2)当创建了大量能表达需求行为或功能的Lambda表达式后,Lambda表达式的威力才能体现出来。

2、再举个例子,紧接上面的例子,找出大额订单。

// Lambda表达式找出大额订单
IOrder bigOrderLambda = (Order o) -> o.getQuantity() > 10000000;
// Lambda表达式找出新的大额订单
ITrade issuerBigNewTradeLambda = (o) -> {
    return o.getIssuer().equals("Honda") &&
        o.getQuantity() > 10000000 &&
        o.getStatus().equals("NEW");
}

四、总结

Google Guava库在”com.google.common.base”中提供了几个很有用的SAM,包括:
1)Function
指定了一个接收“T”类型实例并返回“R”类型实例的方法
2)Predicate
指定了一个传递“T”类型实例并返回布尔类型的方法
3)Supplier
指定了一个能够返回值的方法

还需要知道,这些SAM虽然诞生于Guava库,但是也加入了Java 8。

目录
相关文章
|
7月前
|
缓存 Java Maven
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
Java本地高性能缓存实践问题之SpringBoot引入Caffeine作为缓存库的问题如何解决
|
9月前
|
Java 数据库连接
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
|
10月前
|
消息中间件 存储 缓存
Guava的这些骚操作让我的代码量减少了50行
Guava的这些骚操作让我的代码量减少了50行
55 3
|
10月前
|
缓存 安全 Java
Google guava工具类的介绍和使用
Google guava工具类的介绍和使用
260 1
|
10月前
|
缓存 Java Maven
Google guava工具类库的介绍和使用
Google guava工具类库的介绍和使用
|
10月前
|
存储 缓存 Java
Guava常用工具库整理
Guava常用工具库整理
|
消息中间件 缓存 JavaScript
Guava的这些骚操作,让我的代码量减少了50%
Guava的这些骚操作,让我的代码量减少了50%
|
设计模式 缓存 Java
Java两大工具库:Commons和Guava(6)
除了操作集合、限流和缓存,Guava还有另一个隐秘的功能:事件总线EventBus机制——是发布-订阅模式的实现,不需要显式地注册回调——比观察者模式更灵活。
159 0
|
缓存 安全 Java
《Guava》基础 入门
《Guava》基础 入门
233 0
《Guava》基础 入门
|
存储
guava学习:guava集合类型-Bimap
学习guava让我惊喜的第二个接口就是:Bimap BiMap是一种特殊的映射其保持映射,同时确保没有重复的值是存在于该映射和一个值可以安全地用于获取键背面的倒数映射。 最近开发过程中,经常会有这种根据key找value或者根据value找key 的功能,之前都是将值存储到枚举或者map中,然后通过反转的写法来实现的,直到发现了Bimap,才发现原来还有这么简便的方式。
1259 0

热门文章

最新文章