Java List 均分:高效分割列表为 N 份
要将一个 Java List 平均分成 n 份,可以按照以下步骤操作:
- 计算 List 的总长度,将其保存在变量 totalLength 中。
- 计算每份的长度,将其保存在变量 averageLength 中,即 averageLength = totalLength / n。
- 创建一个新的二维 List,用于保存分割后的结果,命名为 resultList。
- 创建一个临时 List,用于保存每份的元素,命名为 tempList。
- 遍历原始 List,将每个元素添加到 tempList 中。
- 当 tempList 的长度达到 averageLength 时,将其添加到 resultList 中,并清空 tempList。
- 重复步骤 5 和 6,直到遍历完整个原始 List。
- 如果 tempList 中还有剩余元素,将其添加到 resultList 中。
- 返回 resultList 作为结果。
以下是一个示例代码,用于将一个 Java List 平均分成 n 份:
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
int n = 3;
List<List<Integer>> resultList = splitList(list, n);
for (List<Integer> sublist : resultList) {
System.out.println(sublist);
}
}
public static <T> List<List<T>> splitList(List<T> list, int n) {
int totalLength = list.size();
int averageLength = totalLength / n;
List<List<T>> resultList = new ArrayList<>();
List<T> tempList = new ArrayList<>();
for (T element : list) {
tempList.add(element);
if (tempList.size() == averageLength) {
resultList.add(new ArrayList<>(tempList));
tempList.clear();
}
}
if (!tempList.isEmpty()) {
resultList.add(tempList);
}
return resultList;
}
}
在上述示例中,我们将一个包含 9 个元素的 List 均分成 3 份,并打印结果。结果如下:
[1, 2, 3]
[4, 5, 6]
[7, 8, 9]
原文地址: https://www.cveoy.top/t/topic/mgKW 著作权归作者所有。请勿转载和采集!