记录平常发现的guava的实用方法,以便于下次可以直接copy
list
- newArrayList 初始化
- charactersOf 将字符串转换成字符串集合
- transform 转换新list
- reverse 翻转list
- partition 根据指定size分页
|
|
Set
- newHashSet 初始化
- difference 差集
- intersection 交集
- union 并集
- filter 过滤
|
|
table支持二层索引
当我们需要多个索引的数据结构的时候,通常情况下,我们只能用这种丑陋的Map
- row(R) 返回Map
- rowKeySet 返回Set
- columnKeySet 返回Set
- values 返回Collection的value值
|
|
Maps支持快速过滤和转换新map
- filterEntries 过滤entry
- filterKeys 根据key过滤
- filterValues 根据value过滤
transformEntries 转换成新map
12345678910111213141516171819public static void main(String[] args) {Map<String,Integer> map=new HashMap<>(3);map.put("语文",80);map.put("数学",90);map.put("英语",100);//过滤value大于85的值 结果为 {"英语":100,"数学":90}// 方法1 stream提供的map.entrySet().stream().filter(item->item.getValue()>85).collect(Collectors.toMap(x->x.getKey(),y->y.getValue()));// 方法2 guava提供的newMap=Maps.filterEntries(map,item->item.getValue()>85);// 同理guava还提供了filterKey方法和filterValue方法newMap=Maps.filterKeys(map,item->"语文".equals(item));newMap=Maps.filterValues(map,item->item > 85);// Maps还提供了转换新map的方法 结果为 {"英语":"英语100","数学":"数学90","语文":"语文80"}newMap=Maps.transformEntries(map,(k,y)->(k+y));}