Guava for Java: 完整指南及示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

什么是 Guava,为什么需要它?

\n\n

Guava 是 Google 开发的一个强大的开源库,为 Java 语言提供了一套高质量的实用工具。它的目的是让 Java 代码更简洁、更可靠、性能更高,解决开发者经常遇到的许多典型问题。

\n\n

为什么需要 Guava?Java 标准库(JDK)提供了基本功能,但在便利性和安全性方面往往不尽如人意。Guava 填补了这些空白,提供了:

\n
    \n
  • 简化集合操作: 创建不可变集合、过滤、转换、分组——所有这些都变得简单得多。
  • \n
  • 缓存: 一个强大且灵活的内存数据缓存框架。
  • \n
  • 基本类型处理: 用于处理基本类型数组(int、long、double 等)的工具。
  • \n
  • 字符串操作: 方便的字符串处理类,例如 Joiner 和 Splitter。
  • \n
  • 函数和谓词操作: 函数式编程风格(虽然不如 Java 8+ 那样简洁,但仍然有用)。
  • \n
  • 前置条件检查(Preconditions): 优雅地替代手动检查 null 和其他条件。
  • \n
  • 哈希处理: 用于创建哈希函数的工具。
  • \n
  • 线程与并发: 用于多线程处理的工具,包括 ListenableFuture。
  • \n
\n

如果您使用 Java 编程并希望提高代码质量和开发速度,Guava 是必备库。

\n\n

安装 Guava

\n\n

Guava 不通过 pip 或 npm 安装,因为它是 Java 库。它通过依赖管理系统(如 Maven 或 Gradle)分发。

\n\n

通过 Maven 安装(pom.xml)

\n

将以下代码添加到您的 pom.xml 文件的 <dependencies> 部分:

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

通过 Gradle 安装(build.gradle)

\n

添加到 dependencies 部分:

\n
implementation 'com.google.guava:guava:33.2.0-jre'
\n\n

手动安装(下载 JAR)

\n

您也可以从 Guava 的 GitHub 发布页面 下载 JAR 文件,并将其添加到项目的 classpath 中。

\n\n

重要提示: 版本 33.2.0-jre 适用于 Java 8 及以上版本。对于更旧版本的 Java,请使用 android 版本(例如 33.2.0-android)。

\n\n

快速入门及代码示例

\n\n

让我们编写一个简单的程序,演示 Guava 的几个关键功能。

\n\n
import com.google.common.base.Joiner;\nimport com.google.common.base.Splitter;\nimport com.google.common.collect.ImmutableList;\nimport com.google.common.collect.Lists;\n\nimport java.util.List;\n\npublic class GuavaQuickStart {\n    public static void main(String[] args) {\n        // 1. 创建不可变列表\n        ImmutableList<String> names = ImmutableList.of("Alice", "Bob", "Charlie");\n        System.out.println("名字: " + names); // [Alice, Bob, Charlie]\n\n        // 2. 使用 Joiner 连接字符串\n        String joined = Joiner.on(", ").join(names);\n        System.out.println("连接后的名字: " + joined); // Alice, Bob, Charlie\n\n        // 3. 使用 Splitter 分割字符串\n        String csv = "apple,banana,,grape";\n        Iterable<String> fruits = Splitter.on(",")\n                .trimResults()\n                    

推荐