您当前的位置: 首页 > 

white camel

暂无认证

  • 0浏览

    0关注

    442博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

white camel 发布时间:2022-08-19 09:54:09 ,浏览量:0

文章目录
  • Guava文档地址
  • 引入依赖
  • 一、集合工具类
    • Lists
    • Sets
    • Maps
    • HashBiMap ---> BiMap接口
    • HashMultiset ---> Multiset
    • HashMultimap ---> Multimap
  • 二、字符串工具类
    • Joiner 字符串拼接工具类
    • Splitter: 字符串分割工具类
  • 三、IO流工具类
    • Files文件工具类
    • Resources:资源工具类
    • ByteStreams 字节流工具类
    • CharStreams 字符工具类

Guava文档地址

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
关注
打赏
1661428283
查看更多评论
立即登录/注册

微信扫码登录

0.0426s