文章目录
Guava文档地址
- Guava文档地址
- 引入依赖
- 一、集合工具类
- Lists
- Sets
- Maps
- HashBiMap ---> BiMap接口
- HashMultiset ---> Multiset
- HashMultimap ---> Multimap
- 二、字符串工具类
- Joiner 字符串拼接工具类
- Splitter: 字符串分割工具类
- 三、IO流工具类
- Files文件工具类
- Resources:资源工具类
- ByteStreams 字节流工具类
- CharStreams 字符工具类
Google Guava文档
引入依赖
com.google.guava
guava
31.1-jre
一、集合工具类
Lists
创建: newArrayList/newLinkedList/newArrayListWithCapacity
newArrayListWithExpectedSize/CopyOnWriteArrayList
其他方法:
对象转换 asList
切分 partition
翻转 reverse
转换 transform
字节转 charactersOf
Sets
创建: newHashSet/newHashSetWithExpectedSize
newLinkedHashSet/newTreeSet
其他方法:
差异 difference
交集 intersection
并集 union
过滤 filter
Maps
创建:newHashMap/newHashMapWithExpectedSize
newLinkedHashMap/newTreeMap/newConcurrentMap
其他方法:
差异: difference,
过滤 filterEntries/filterKeys/filterValues
配置: fromProperties,
转换: transformEntries/transformValues
HashBiMap —> BiMap接口
key和value都不能重复的集合,专门用来作为翻转
创建:create
增删: put,forcePut,putAll,remove,clear
翻转: inverse 转换:delegate
获取数据: keySet,values,entrySet
------------
BiMap biMap = HashBiMap.create(3);
biMap.put("a",1);
biMap.put("b",2);
biMap.put("c",3);
System.out.println(JSONUtil.toJsonPrettyStr(biMap));
BiMap newBiMap = biMap.inverse();
System.out.println(JSONUtil.toJsonPrettyStr(newBiMap));
HashMultiset —> Multiset
可重复Set
创建:create,
添加,移除,清空等: add,addAll,remove,removeAll,
获取:elementSet,entrySet,setCount,size
判断:contains,isEmpty,
其他:count,retainAll
HashMultimap —> Multimap
可重复key的Map
创建:create,
添加,移除,清空:clear,put,putAll,remove,removeAll,
获取:entries,get,keys,keySet,size,values
判断:containsEntry,containsKey,isEmpty,
其他:asMap,replaceValues,
二、字符串工具类
Joiner 字符串拼接工具类
创建:Joiner.on字符串
拼接:appendTo字符串,join分隔符
处理: skipNulls,useForNull,withKeyValueSeparator通过分隔符将字符串转成Map
//测试:
List list2 = Arrays.asList("Google", "Guava",
"Java", "Scala", "Kafka");
String result = Joiner.on("; ").join(list2);
System.out.println(result);//Google; Guava; Java; Scala; Kafka
------------------------------------------------------------------------
List list3 = Arrays.asList(1,5,7);
String result3 = Joiner.on(",").join(list3);
System.out.println(result3);//1,5,7
//将Map转成String
Map map = new HashMap();
map.put("name","jack");
map.put("age",12);
String result4 = Joiner.on(",").withKeyValueSeparator("=").join(map);
System.out.println(result4);//name=jack,age=12
Splitter: 字符串分割工具类
创建:splitter.on字符串
拆分:split分隔符
处理:fixedLength,limit,omitEmptyStrings,trimResults,withKeyValuesSeparator拆分成Map
//guava的写法
List list = Splitter.on("|").splitToList("Hello|Java");
System.out.println(list);//[Hello, Java]
//根据分隔符, 分割几次字符串.
List list = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell");
System.out.println(list);//[Java, C++, C#Shell]
//将url中的键值对存储到map里面
Map map = Splitter.on("&").withKeyValueSeparator('=').split("id=123&name=green");
System.out.println(map);//{id=123, name=green}
三、IO流工具类
Files文件工具类
文件处理:copy/move/touch/deleteRecursively 复制,剪切,创建
文件夹处理:createParentDirs//deleteDirectoryContents
读写文件:newReader/newWriter/readLines/readFirstLine/readBytes/toByteArray/write/append
Resources:资源工具类
copy/getResource/readLines/toByteArray/toString
ByteStreams 字节流工具类
newDataInput/newDataOutput/read/readBytes/readFully/toByteArray/skipFully/length/copy/write
CharStreams 字符工具类
asWriter/write/readFirstLine/readLines/skipFully/toString/copy