📜  将子数组转换为列表 java (1)

📅  最后修改于: 2023-12-03 15:09:35.285000             🧑  作者: Mango

将子数组转换为列表 Java

在 Java 中,我们可以将一个数组拆分成多个小数组,这些小数组被称为子数组。我们可以将这些子数组转换为列表以便更好地处理数据。

代码实现

以下是将子数组转换为列表的 Java 代码示例:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class ConvertSubArrayToList {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6};
        int splitSize = 2;

        List<List<Integer>> subArrays = Arrays.stream(arr)
                .boxed()
                .collect(Collectors.partitioningBy(
                        i -> (i - 1) / splitSize
                ))
                .entrySet()
                .stream()
                .sorted((a, b) -> Integer.compare(a.getKey(), b.getKey()))
                .map(e -> e.getValue())
                .collect(Collectors.toList());

        System.out.println(subArrays);
    }
}
代码说明

上面的代码通过 Java 8 中的 Stream API 将一个整型数组拆分成指定大小的小数组,然后将每个小数组转换为列表。

我们首先将整型数组转换为 Stream,并将其转换为 boxed Stream,这样我们就可以使用 Stream 的各种操作。

然后,我们使用 Collectors 的 partitioningBy() 方法来将我们的数组拆分成多个子数组。该方法会将数组中的每个元素放入一个由逗号分隔的列表中。我们可以使用式子 (i - 1) / splitSize 来确定一个元素应该放在哪个子列表中。在这个式子中,i 是我们的数组中的每个元素,splitSize 是我们想要拆分的子数组的大小。最后,我们将结果的 Map 转换成一个 List<List<Integer>>、并按顺序排列它们。

最后,我们打印出 subArrays 变量,即拆分后的子数组列表。

结论

通过本文,我们了解了如何将一个整型数组拆分成指定大小的小数组,并将每个小数组转换为列表。我们使用了 Java 8 中的 Stream API,以简洁的方式进行了实现。这对于在处理数据时节省代码量和时间非常有帮助。