List分页工具类
平时开发中可能会遇到一批数据的批量查询,但是接口限制每次只能查10个,多了查询失败,这个时候就很烦,还的手动给这一批数据分页再去掉接口查询,这个时候就可以用到com.google.common.collect.Lists工具的com.google.common.collect.Lists#partition方法,这个方法可以帮我们自动拆分List,根据我们传入的分批大小,把大集合拆成多个小集合
好处:方便实用,不用手写
List<Long> userIdList = new ArrayList<>();
userIdList.add(1L);
userIdList.add(2L);
userIdList.add(3L);
userIdList.add(4L);
userIdList.add(5L);
userIdList.add(6L);
userIdList.add(7L);
userIdList.add(8L);
List<List<Long>> partition = Lists.partition(userIdList, 3);
可以把8个元素的userIdList通过Lists.partition拆分成3个元素一个的小集合,而且顺序不变
————————————————
分割符的字符串和集合互转
日常开发经常遇到这种:1,2,3,4,5,6
这种逗号分割的,要把他转成List,或者把一个List转成根据逗号分割的字符串,自己写的话就只能split加循环,这个时候又可以用到谷歌工具包
好处:方便实用,不用手写
举个栗子:
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
import java.util.List;
public class CollectionUtil {
/**
* 把list的数据根据split拼接起来,自动过滤data中的null
* 栗子:data:[1,3,4,6] split:"." return: "1.3.4.6"
*/
public static String jointList(List data, String split){
return Joiner.on(split).skipNulls().join(data);
}
/**
* 把根据split分隔的字符串str变成List
* 栗子:str:"1.3.5.7.9" split:"." return:["1","3","5","7","9"]
*/
public static List<String> splitIntoList(String str, String split){
return Splitter.on(split).omitEmptyStrings().splitToList(str);
}
}