阿昌教你使用谷歌guava工具包---集合包
# 阿昌教你使用谷歌guava工具包---集合包
前言
今天阿昌这里分享一个谷歌guava工具包
,自己在工作业务中洋哥
推荐的一个集合工具包的partition()方法
,看了看这个工具包的方法并不是很多,主要常用也就是以下正文的3个方法
。
准备
走开始之前,我们肯定要先导入对于的Maven依赖
- maven依赖
1 | <dependency> |
- 涉及到的方法
正文
阿昌这里主要分享一些最常用
的方法
partition—将集合分块处理
简单演示
1
2
3
4
5ArrayList<String> testList = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15");
Lists.partition(testList,5).forEach(item->{
System.out.println(item);
System.out.println("=========");
});使用场景:可以去查询数据库的使用
in
的方式,来控制查询的次数1
2
3
4
5
6
7
8
9
10
11
12List<Long> groupSysSkuIdList = new ArrayList<>();
List<Object> resultList = new ArrayList<>();
//将集合拆分以200个为单位,每个会执行下面forEach的逻辑
Lists.partition(groupSysSkuIdList,200).forEach(item->{
Example example = new Example();
//构造查询器,类比MybatisPlus的查询构造器
example.createCriteria().
//这里每次用拆分后的idList,用in的方式拆开查询
.andGroupSysSkuIdIn(groupSysSkuIdList);
//最后都加入到结果集合中
resultList.addAll(xxxMapper.selectByExample(example));
});
cartesianProduct—实现集合间笛卡尔积
演示
1
2
3
4
5ArrayList<String> listA = Lists.newArrayList("1", "2");
ArrayList<String> listB = Lists.newArrayList("3", "4");
ArrayList<String> listC = Lists.newArrayList("5", "6");
System.out.println(Lists.cartesianProduct(listA, listB,listC));
- reverse—将元素位置反转
1 | ArrayList<String> oldList = Lists.newArrayList("1", "2", "3"); |
结尾
以上是这次分享记录的所有内容,感谢您能看到这里!!!