大家好,我是开源小妹。
今天给大家分享一个非常好用的工具类库:guava。
介绍
Guava项目包含我们在基于Java的项目中依赖的几个Google核心库:集合、缓存、原语支持、并发库、公共注释、字符串处理、I/O等等。这些工具中的每一个确实每天都会被谷歌用户在生产服务中使用。看起来很强大,接下来跟着小妹一块来看看吧。
快速入门
加入依赖
1 2 3 4 5
| <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>29.0-jre</version> </dependency>
|
对象公共方法
1 2 3 4
| public static void baseMehod(){ System.out.println(Objects.equal("a", "a")); System.out.println(Objects.hashCode("a")); }
|
运行效果如下:
基本类型处理
1 2 3 4 5 6
| public static void primitives(){ List<Integer> list = Ints.asList(1, 2, 3); List<Character> characters = Chars.asList('1', '2', '3'); System.out.println(list); System.out.println(characters); }
|
运行效果如下:
处理字符串
1 2 3 4 5 6 7 8
| public static void dealString(){ String str = "zhangsan,lisi"; System.out.println(Strings.isNullOrEmpty(str)); List<String> list = Splitter.on(",").splitToList(str); System.out.println(list); }
|
运行效果如下:
处理集合
1 2 3 4 5 6 7
| public static void dealLists(){ ArrayList<String> strings = Lists.newArrayList("zhangsan", "lisi"); System.out.println(strings);
List<String> reverse = Lists.reverse(strings); System.out.println(reverse); }
|
运行效果如下:
这里小妹只是简单介绍了 guava 的几个功能的使用,它还有其他的丰富的功能 例如 本地缓存的处理,我们日常本地缓存的话,可以使用 map 或者 list等 但是这些作为缓存则需要我们去处理缓存什么时候过期 数据更新等一系列操作,这些 guava 中的缓存都帮我们做了,简单方法如下:
1 2 3 4 5 6 7 8 9 10
| LoadingCache<String, String> graphs = CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .build( new CacheLoader<String, String>() { @Override public String load(String key) throws AnyException { return dealData(key); } });
|
小妹总结
今天小妹就介绍到这里,guava 的功能很强、很丰富 可以省去重复造轮子的动作,大家快去试一试吧。