当前位置: 首页 > article >正文

浅谈Java库之‌Guava

一、Guava库介绍

        Guava是Google开发的一个Java核心库,它包含了新的集合类型(如多集合、双端队列等)、并发库、常用工具类(如缓存、预处理和字符串处理)、I/O和时间库等。Guava库旨在提供简洁、高性能的解决方案来处理Java标准库中未涵盖或处理不够好的问题。

二、Guava的主要功能

1、集合:提供了一系列扩展的集合类型,如MultisetBiMapTable等。

2、缓存:提供了一个强大的缓存机制,可以自动管理缓存的大小和过期时间。

3、并发:提供了一些并发工具类,如ListeningExecutorServiceMoreExecutors等。

4、预处理:提供了PreconditionsVerify等工具类,用于参数校验。

5、字符串处理:提供了StringsCharMatcher等工具类,用于字符串操作。

6、I/O:提供了FilesByteStreams等工具类,用于文件和字节流操作。

7、时间:提供了TimeLimiter Stopwatch等工具类,用于时间相关的操作。

8、函数式编程:提供了FunctionPredicate等函数式接口的实现。

三、Guava的使用

添加Maven依赖

在项目的pom.xml文件中添加Guava依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.0.1-jre</version> <!-- 使用最新版本 -->
</dependency>

常用工具类和功能的示例
  • 集合操作
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;

List<String> list = Lists.newArrayList("a", "b", "c");
Set<String> set = Sets.newHashSet("a", "b", "c");

  • 缓存
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

LoadingCache<String, String> cache = CacheBuilder.newBuilder()
    .maximumSize(100)
    .expireAfterWrite(10, TimeUnit.MINUTES)
    .build(CacheLoader.from(key -> compute(key)));

String value = cache.getUnchecked("key");

  • 并发工具
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;

ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(4));
service.submit(() -> {
    // 执行任务
});

  • 预处理
import com.google.common.base.Preconditions;

String name = "Kimi";
Preconditions.checkNotNull(name, "Name cannot be null");

  • 字符串处理
import com.google.common.base.Strings;

String str = "  Google ";
boolean isNullOrEmpty = Strings.isNullOrEmpty(str);

  • I/O操作
import com.google.common.io.Files;

Files.copy(new File("source.txt"), new File("destination.txt"));

  • 时间操作
import com.google.common.base.Stopwatch;

Stopwatch stopwatch = Stopwatch.createStarted();
// 执行一些操作
stopwatch.stop();
System.out.println("Time elapsed: " + stopwatch.elapsed(TimeUnit.SECONDS) + "s");


http://www.kler.cn/a/415828.html

相关文章:

  • 《气象》期刊
  • GPT视角下,如何在密码学研究中找到属于你的方向?
  • 前端 时间格式占位符 学习
  • 如何监控Elasticsearch集群状态?
  • python基础(二)
  • vue3 ajax获取json数组排序举例
  • SQL进阶技巧:如何寻找同一批用户 | 断点分组应用【最新面试题】
  • 【机器学习chp8】统计学习理论
  • 【llamafactory】安装与环境配置
  • 使用 Python 删除视频的某一段并保留其他时间段
  • 技术模板纪要
  • 解决SpringBoot连接Websocket报:请求路径 404 No static resource websocket.
  • 如何在谷歌浏览器中使用开发者工具调试网页
  • 004 MATLAB数值微积分
  • [Java]微服务之分布式事务
  • Redis【1】- 如何阅读Redis 源码
  • 3.22决策树,离散值
  • SpringMVC-Day2
  • layui-vue第三方库表格列事件怎么写
  • 人工智能之数学基础:欧式距离及在人工智能领域中的应用
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(6)
  • 牛客 ZT13 小红的数字删除
  • go每日一题:mock打桩、defer、recovery、panic的调用顺序
  • 【Linux】进程控制-----进程等待wait与waitpid
  • 用Go语言重写Linux系统命令 -- ping
  • Python读取摄像头视频并将其保存为MP4文件