Fork me on GitHub

Google的java工具类Guava

前言

google开发java项目肯定也不想重复造轮子,所以肯定也有工具类,就是它了:Guava
我将举例几个实际的例子,发挥这个工具类好用的功能。更多的方法和功能,还有内部的实现可以直接参考https://github.com/google/guava

举例

ps:这边都以单个情况举例,如以map举例,那么List等都有类似的功能。

1、创建
原来你可能是这样的:

Map<String, Map<Long, List<String>>> map = new HashMap<String, Map<Long,List<String>>>();

 

现在你可以:

 Map<String, Map<Long, List<String>>> map = Maps.newHashMap(); 

2、初始化
原来你可能是这样的:

Map<String,String> map = new HashMap<>();
        map.put("key1", "val1");
        map.put("key2", "val2");

 

现在你可以:

Map<String,String> map = ImmutableMap.of("key1", "val1", "key2", "val2");

 

当然绝大多数情况下,这样的用法用于list较多,map这样的写法,可读性有点差,也多用于测试用例中。

3、比较
原来你可能是这样的:

int a = 1;
int b = 2;
int compareTo = Integer.valueOf(a).compareTo(Integer.valueOf(b));

 

现在你可以:

int compare = Ints.compare(a, b);

 

其他有Ints,Doubles,Floats,Shorts,Bytes以及Bools等工具类用于操作基本类型的数据很方便

4、list转String

List<Integer> list = listOf(1, 2, 3);
int[] arr = Ints.toArray(list);

 

5、字符比较分离

//判断字符a~z
CharMatcher charMatcher = CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'));
boolean result = charMatcher.matches('a');
System.out.println(result);

//分离字符串并处理空格和空的情况
Iterable<String> split = Splitter.on(",")
        .omitEmptyStrings()
        .trimResults()
        .split("1,,,2, 3,    ,5");

for (String temp : split) {
    System.out.println(temp);
}
//转小驼峰
tableName = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, tableName);
复制代码

 

6、一键多值的map

Multimap<String, String> multimap = ArrayListMultimap.create();
multimap.put("123", "123");
multimap.put("123", "124");
System.out.println(multimap.get("123"));
//[123, 124]

 

其他很多奇奇怪怪的功能在下面都有,上面只是抛砖引玉。

参考文档博客:
https://www.cnblogs.com/SummerinShire/p/6054983.html
https://blog.csdn.net/dgeek/article/details/76221746
http://ifeve.com/google-guava-collectionutilities/

 

posted @   LinkinStar  阅读(1459)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示