将 ArrayList 拆分为多个子列表
在 Java 中,您可以有效地将 ArrayList 分成更小、大小相等的子列表。这在需要处理或管理小块数据的场景中非常有用。
使用 subList() 创建视图
subList() 方法ArrayList 类允许您获取指定范围内的原始列表的一部分的视图。调用 subList() 不会创建新列表,而是返回现有列表的视图。对子列表所做的任何更改都会反映在原始列表中,反之亦然。
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 1, 2, 9, 5, 0, 7)); List<Integer> head = numbers.subList(0, 4); // View from index 0 to index 3 (exclusive) List<Integer> tail = numbers.subList(4, 8); // View from index 4 to index 7 (exclusive)
创建非视图子列表
如果您要求子列表独立原始列表的,您可以从子列表视图显式创建新的 ArrayList 对象。
List<List<Integer>> chopped = new ArrayList<>(); for (int i = 0; i < numbers.size(); i += L) { List<Integer> sublist = new ArrayList<>( numbers.subList(i, Math.min(numbers.size(), i + L)) ); chopped.add(sublist); }
此方法创建子列表的深层副本,确保对切碎的子列表的更改不会影响原始列表。
用法示例
考虑一个称为数字的整数列表,其中包含 [5, 3, 1, 2, 9, 5, 0, 7]。您可以使用以下代码将此列表拆分为三个大小为 3 的子列表:
List<List<Integer>> choppedLists = chopped(numbers, 3);
choppedLists 变量现在将包含三个列表:[[5, 3, 1], [2, 9, 5] , [0, 7]]。您可以进一步修改这些子列表,而无需更改原始号码列表。
以上是如何在Java中高效地将ArrayList拆分为多个子列表?的详细内容。更多信息请关注PHP中文网其他相关文章!