package com.itjingsong.test;
import com.google.common.collect.Lists;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @author jingsong
* @date 2022/6/6 22:06
* @desc 业务有时需要对一个大集合拆分成多个小集合,介绍一种简单的工具类
* <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
*/
public class ListsTest {
public static void main(String[] args) {
List<String> list = Arrays.asList("aa", "bb", "cc", "dd", "ee");
List<List<String>> lists1 = Lists.partition(list, 2);
System.out.println("lists1 = " + lists1);
List<List<String>> lists2 = Lists.partition(list, 3);
System.out.println("lists2 = " + lists2);
List<List<String>> lists3 = Lists.partition(list, 200);
System.out.println("lists3 = " + lists3);
List<String> strings = trimList(list, 3);
System.out.println(list);
System.out.println("strings = " + strings);
}
/**
* 缩减集合的尺寸
* @param list 目标集合
* @param size 缩减到的尺寸
* @param <T> 类型
* @return 缩减后的尺寸
*/
@SuppressWarnings("unchecked")
public static <T> List<T> trimList(List<T> list, int size) {
int num;
if (list == null || (num = list.size()) == 0){
return Collections.emptyList();
}
if (num <= size) {
return list;
}
T[] ts = (T[]) Arrays.copyOf(list.toArray(), size);
return Arrays.asList(ts);
}
}
utils014_拆分一个大集合为多个小集合
最新推荐文章于 2023-02-08 10:11:39 发布