还在重复写常用的工具类?


大家好,我是开源小妹。

今天给大家分享一个非常好用的工具类库: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 的功能很强、很丰富 可以省去重复造轮子的动作,大家快去试一试吧。


文章作者: 开源小分队
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 开源小分队 !
  目录