要将一个 Java List 平均分成 n 份,可以按照以下步骤操作:

  1. 计算 List 的总长度,将其保存在变量 totalLength 中。
  2. 计算每份的长度,将其保存在变量 averageLength 中,即 averageLength = totalLength / n。
  3. 创建一个新的二维 List,用于保存分割后的结果,命名为 resultList。
  4. 创建一个临时 List,用于保存每份的元素,命名为 tempList。
  5. 遍历原始 List,将每个元素添加到 tempList 中。
  6. 当 tempList 的长度达到 averageLength 时,将其添加到 resultList 中,并清空 tempList。
  7. 重复步骤 5 和 6,直到遍历完整个原始 List。
  8. 如果 tempList 中还有剩余元素,将其添加到 resultList 中。
  9. 返回 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]

Java List 均分:高效分割列表为 N 份

原文地址: https://www.cveoy.top/t/topic/mgKW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录