Guava 是一个来自 Google 的 Java 开源工具库,它提供了许多实用的功能,如集合操作、字符串处理、缓存、并发编程等。以下是 Guava 的一些使用指南和示例代码。
集合操作
Guava 提供了许多集合操作的工具类,如 Lists、Sets、Maps 等。
示例代码:
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.List;
import java.util.Map;
public class CollectionExample {
public static void main(String[] args) {
List<String> list = Lists.newArrayList("apple", "banana", "orange");
System.out.println(list); // [apple, banana, orange]
Map<String, Integer> map = Maps.newHashMap();
map.put("apple", 5);
map.put("banana", 3);
map.put("orange", 2);
System.out.println(map); // {apple=5, banana=3, orange=2}
}
}
字符串处理
Guava 提供了许多字符串处理的工具类,如 Strings、Splitter 等。
示例代码:
import com.google.common.base.Splitter;
import java.util.List;
public class StringExample {
public static void main(String[] args) {
String str = "apple,banana,orange";
List<String> list = Splitter.on(",").splitToList(str);
System.out.println(list); // [apple, banana, orange]
}
}
缓存
Guava 提供了缓存的工具类 CacheBuilder。
示例代码:
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import java.util.concurrent.TimeUnit;
public class CacheExample {
public static void main(String[] args) {
Cache<String, Integer> cache = CacheBuilder.newBuilder()
.maximumSize(100)
.expireAfterWrite(10, TimeUnit.MINUTES)
.build();
cache.put("apple", 5);
cache.put("banana", 3);
cache.put("orange", 2);
System.out.println(cache.getIfPresent("apple")); // 5
System.out.println(cache.getIfPresent("banana")); // 3
System.out.println(cache.getIfPresent("orange")); // 2
}
}
并发编程
Guava 提供了并发编程的工具类,如 RateLimiter、Semaphore 等。
示例代码:
import com.google.common.util.concurrent.RateLimiter;
import java.util.concurrent.TimeUnit;
public class ConcurrencyExample {
public static void main(String[] args) throws InterruptedException {
RateLimiter rateLimiter = RateLimiter.create(10); // 限制每秒最多 10 个请求
for (int i = 0; i < 20; i++) {
new Thread(() -> {
rateLimiter.acquire();
System.out.println(Thread.currentThread().getName() + " 获得许可");
}).start();
}
TimeUnit.SECONDS.sleep(5);
}
}
这只是 Guava 的一部分功能,更多功能可以参考官方文档:https://github.com/google/guava/wiki