自学内容网 自学内容网

Guava: 探索 Google 的 Java 核心库

Guava 是 Google 开发的一套 Java 核心库,它提供了一系列新的集合类型(例如多映射 multimap 和多集合 multiset)、不可变集合、图形库以及用于并发、I/O、哈希、原始类型、字符串等的实用工具。Guava 在 Google 的大多数 Java 项目中得到了广泛使用,也被许多其他公司所采用。

Guava 的特点

  • 新的集合类型:Guava 提供了多种集合类型,如 MultimapMultisetBiMap 等,这些集合类型提供了传统 Java 集合框架中没有的功能。
  • 不可变集合:Guava 提供了不可变集合,一旦创建,其内容就不能被修改,这有助于减少并发编程中的错误。
  • 图形库:Guava 包含了一个图形库,可以用于表示和处理图形结构。
  • 并发库:Guava 提供了简化并发编程的工具,如 ListenableFutureMoreExecutors 等。
  • I/O 和字符串处理:Guava 提供了增强的 I/O 和字符串处理功能,使得这些常见任务更加容易和高效。

如何将 Guava 添加到你的项目中

Guava 可以通过 Maven 或 Gradle 添加到你的项目中。

Maven

在 Maven 项目中,你可以在 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.3.0-jre</version>
</dependency>

对于 Android 项目,使用以下依赖:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.3.0-android</version>
</dependency>

Gradle

在 Gradle 项目中,你可以在 build.gradle 文件中添加以下依赖:

dependencies {
    implementation 'com.google.guava:guava:33.3.0-jre'
}

// 对于 Android 项目
implementation 'com.google.guava:guava:33.3.0-android'

Android 中使用 Guava

在 Android 项目中使用 Guava 时,你需要确保你的 build.gradle 文件中已经正确配置了 Android 插件和相关的依赖项。

配置 Android 项目

  1. 应用 Android 插件:确保你的项目已经应用了 Android 插件。

    apply plugin: 'com.android.application'
    
  2. 配置 Android:在 android 块中配置你的应用的基本信息,如版本号、应用 ID 等。

    android {
        compileSdkVersion 33
        defaultConfig {
            applicationId "com.example.guava"
            minSdkVersion 21
            targetSdkVersion 33
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
  3. 添加 Guava 依赖:在 dependencies 块中添加 Guava 的 Android 版本。

    dependencies {
        implementation 'com.google.guava:guava:33.3.0-android'
    }
    

使用 Guava 的示例

使用不可变集合
import com.google.common.collect.ImmutableList;

public class Example {
    public static void main(String[] args) {
        ImmutableList<String> list = ImmutableList.of("Apple", "Banana", "Cherry");
        // list.add("Date") // 这将导致编译错误,因为集合是不可变的
    }
}
使用多映射
import com.google.common.collect.Multimap;
import com.google.common.collect.HashMultimap;

public class Example {
    public static void main(String[] args) {
        Multimap<String, String> multimap = HashMultimap.create();
        multimap.put("Fruit", "Apple");
        multimap.put("Fruit", "Banana");
        multimap.put("Vegetable", "Carrot");

        System.out.println(multimap.get("Fruit")); // 输出 [Apple, Banana]
    }
}
使用 ListenableFuture
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListeningExecutorService;
import com.google.common.util.concurrent.MoreExecutors;
import java.util.concurrent.Executors;

public class Example {
    public static void main(String[] args) {
        ListeningExecutorService service = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(4));
        ListenableFuture<String> future = service.submit(() -> "Hello, Guava!");
        
        future.addListener(() -> {
            System.out.println("Task completed with result: " + future.get());
        }, MoreExecutors.directExecutor());
    }
}

总结

Guava 是一个功能强大的 Java 库,它通过提供新的集合类型、不可变集合、图形库和并发工具等,极大地扩展了 Java 的能力。通过简单地添加 Guava 依赖到你的项目中,你可以利用这些强大的工具来简化你的代码和提高效率。对于 Android 开发者,Guava 也提供了专门的 Android 版本,使得在 Android 项目中使用 Guava 变得更加方便和高效。


原文地址:https://blog.csdn.net/qq_29752857/article/details/142452756

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!