常用工具类 (二) : Google Guava 常用工具类整理 (全)


Guava文档地址

Google Guava文档

引入依赖

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.1-jre</version>
</dependency>

一、集合工具类

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<String> list2 = Arrays.asList("Google", "Guava", 
"Java", "Scala", "Kafka");
String result = Joiner.on("; ").join(list2);
System.out.println(result);//Google; Guava; Java; Scala; Kafka
------------------------------------------------------------------------
List<Integer> list3 = Arrays.asList(1,5,7);
String result3 = Joiner.on(",").join(list3);
System.out.println(result3);//1,5,7

//将Map转成String
Map<String,Object> 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<String> list = Splitter.on("|").splitToList("Hello|Java");
System.out.println(list);//[Hello, Java]
//根据分隔符, 分割几次字符串.
List<String> list = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell");
System.out.println(list);//[Java, C++, C#Shell]
//将url中的键值对存储到map里面
Map<String, String> 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

white camel

感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值