前言
google开发java项目肯定也不想重复造轮子,所以肯定也有工具类,就是它了:Guava
我将举例几个实际的例子,发挥这个工具类好用的功能。更多的方法和功能,还有内部的实现可以直接参考举例
ps:这边都以单个情况举例,如以map举例,那么List等都有类似的功能。
1、创建
原来你可能是这样的:Map>> map = new HashMap >>();
现在你可以:
Map>> map = Maps.newHashMap();
2、初始化
原来你可能是这样的:Mapmap = new HashMap<>(); map.put("key1", "val1"); map.put("key2", "val2");
现在你可以:
Mapmap = 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
Listlist = listOf(1, 2, 3);int[] arr = Ints.toArray(list);
5、字符比较分离
//判断字符a~zCharMatcher charMatcher = CharMatcher.inRange('a', 'z').or(CharMatcher.inRange('A', 'Z'));boolean result = charMatcher.matches('a');System.out.println(result);//分离字符串并处理空格和空的情况Iterablesplit = 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
Multimapmultimap = ArrayListMultimap.create();multimap.put("123", "123");multimap.put("123", "124");System.out.println(multimap.get("123"));//[123, 124]
其他很多奇奇怪怪的功能在下面都有,上面只是抛砖引玉。
参考文档博客: