在日常开发中,我们经常需要将一个集合等量划分成几个集合,比如说做分批上传的时候。下面就分享一个List集合等量分割工具类:
/**
* 集合等量分割工具类
* */
class ListSplitUtils {
companion object {
fun splitList(
messagesList: List<T>,
groupSize: Int
): List<List<T>>? {
val length = messagesList.size
// 计算可以分成多少组
val num = (length + groupSize - 1) / groupSize // TODO
val newList: MutableList<List<T>> = ArrayList(num)
for (i in 0 until num) {
// 开始位置
val fromIndex = i * groupSize
// 结束位置
val toIndex = if ((i + 1) * groupSize < length) (i + 1) * groupSize else length
newList.add(messagesList.subList(fromIndex, toIndex))
}
return newList
}
}
}
T代表你所需要的类型。
|