📅  最后修改于: 2023-12-03 15:09:35.285000             🧑  作者: Mango
在 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,以简洁的方式进行了实现。这对于在处理数据时节省代码量和时间非常有帮助。