Google Guava库介绍

简介: Guava库介绍 一、什么是Guava 1)Guava库是一个适合很多Java项目的通用工具库 2)Guava工具库中包含了:集合Collection、并发Concurrency、原语Primitive、反射Reflection、比较Comparison、I/O操作、哈希Hash、网络Networking、字符串String、数学函数Math、缓存Caching、内存中的发布/订阅……以及各种级别的数据类型 3)需要JDK 6以上版本二、函数接口 在深入Guava库之前,我们先了解其函数接口,了解这些函数接口有助于我们更好地掌握Guava库。
Guava库介绍
一、什么是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、函数接口带单个方法参数

点击(此处)折叠或打开

  1. @FunctionalInterface{
  2.     public boolean check(Order o);
  3. }

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

点击(此处)折叠或打开

  1. IOrder newOrder = (Order o) -> o.getStatus().equals("NEW");
  2. //或者
  3. IOrder newOrder = (o) ->o.getStatus().equals("NEW");

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

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

点击(此处)折叠或打开

  1. // Lambda表达式找出大额订单
  2. IOrder bigOrderLambda = (Order o) -> o.getQuantity() > 10000000;

  3. // Lambda表达式找出新的大额订单
  4. ITrade issuerBigNewTradeLambda = (o) -> {
  5.     return o.getIssuer().equals("Honda") &&
  6.         o.getQuantity() > 10000000 &&
  7.         o.getStatus().equals("NEW");
  8. }

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

还需要知道,这些SAM虽然诞生于Guava库,但是也加入了Java 8。
目录
相关文章
|
4月前
|
存储 数据库 Android开发
🔥Android Jetpack全解析!拥抱Google官方库,让你的开发之旅更加顺畅无阻!🚀
【7月更文挑战第28天】在Android开发中追求高效稳定的路径?Android Jetpack作为Google官方库集合,是你的理想选择。它包含多个独立又协同工作的库,覆盖UI到安全性等多个领域,旨在减少样板代码,提高开发效率与应用质量。Jetpack核心组件如LiveData、ViewModel、Room等简化了数据绑定、状态保存及数据库操作。引入Jetpack只需在`build.gradle`中添加依赖。例如,使用Room进行数据库操作变得异常简单,从定义实体到实现CRUD操作,一切尽在掌握之中。拥抱Jetpack,提升开发效率,构建高质量应用!
70 4
|
3月前
Google Guava ListeningExecutorService
Google Guava ListeningExecutorService
19 0
|
5月前
|
Java 数据库连接
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
提升编程效率的利器: 解析Google Guava库之IO工具类(九)
|
5月前
|
缓存 Java Maven
深入解析Google Guava库与Spring Retry重试框架
深入解析Google Guava库与Spring Retry重试框架
|
5月前
|
监控 安全 算法
提升编程效率的利器: 解析Google Guava库之RateLimiter优雅限流(十)
提升编程效率的利器: 解析Google Guava库之RateLimiter优雅限流(十)
|
5月前
|
缓存 安全 Java
提升编程效率的利器: 解析Google Guava库之集合工具类-50个示例(八)
提升编程效率的利器: 解析Google Guava库之集合工具类-50个示例(八)
|
5月前
|
缓存 算法 Java
提升编程效率的利器: 解析Google Guava库之常用工具类-40个示例(七)
提升编程效率的利器: 解析Google Guava库之常用工具类-40个示例(七)
|
5月前
|
存储
提升编程效率的利器: 解析Google Guava库之集合篇RangeMap范围映射(六)
提升编程效率的利器: 解析Google Guava库之集合篇RangeMap范围映射(六)
|
6月前
|
数据可视化 定位技术 Sentinel
如何用Google Earth Engine快速、大量下载遥感影像数据?
【2月更文挑战第9天】本文介绍在谷歌地球引擎(Google Earth Engine,GEE)中,批量下载指定时间范围、空间范围的遥感影像数据(包括Landsat、Sentinel等)的方法~
2446 1
如何用Google Earth Engine快速、大量下载遥感影像数据?
|
6月前
|
编解码 人工智能 算法
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
Google Earth Engine——促进森林温室气体报告的全球时间序列数据集
86 0

热门文章

最新文章