Guava: 探索 Google 的 Java 核心库
Guava 是 Google 开发的一套 Java 核心库,它提供了一系列新的集合类型(例如多映射 multimap 和多集合 multiset)、不可变集合、图形库以及用于并发、I/O、哈希、原始类型、字符串等的实用工具。Guava 在 Google 的大多数 Java 项目中得到了广泛使用,也被许多其他公司所采用。
Guava 的特点
- 新的集合类型:Guava 提供了多种集合类型,如
Multimap
、Multiset
、BiMap
等,这些集合类型提供了传统 Java 集合框架中没有的功能。 - 不可变集合:Guava 提供了不可变集合,一旦创建,其内容就不能被修改,这有助于减少并发编程中的错误。
- 图形库:Guava 包含了一个图形库,可以用于表示和处理图形结构。
- 并发库:Guava 提供了简化并发编程的工具,如
ListenableFuture
、MoreExecutors
等。 - 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 项目
-
应用 Android 插件:确保你的项目已经应用了 Android 插件。
apply plugin: 'com.android.application'
-
配置 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' } } }
-
添加 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)!