首页 > Java > java教程 > 如何在Java中将ArrayList拆分为多个较小的ArrayList?

如何在Java中将ArrayList拆分为多个较小的ArrayList?

Barbara Streisand
发布: 2024-11-25 03:22:11
原创
290 人浏览过

How to split an ArrayList into multiple smaller ArrayLists in Java?

Java 中将 ArrayList 拆分为多个较小的 ArrayList

Java 中,将 ArrayList 拆分为多个指定大小的较小 ArrayList 需要一个解决方案允许有效的分割并可能创建非视图

使用 subList()

一种方法是利用 subList(int fromIndex, int toIndex) 方法来获取原始列表的一部分的视图。此方法不会创建新列表,而是提供对现有 ArrayList 中的段的引用。

示例:

List<Integer> numbers = new ArrayList<>(Arrays.asList(5,3,1,2,9,5,0,7));

List<Integer> head = numbers.subList(0, 4);
List<Integer> tail = numbers.subList(4, 8);

System.out.println(head); // prints "[5, 3, 1, 2]"
System.out.println(tail); // prints "[9, 5, 0, 7]"
登录后复制

创建非查看子列表

但是,如果您需要切碎的列表是独立的而不是原始列表的视图,您可以从子列表创建一个新的ArrayList。

示例:

// chops a list into non-view sublists of length L
static <T> List<List<T>> chopped(List<T> list, final int L) {
    List<List<T>> parts = new ArrayList<>();
    final int N = list.size();
    for (int i = 0; i < N; i += L) {
        parts.add(new ArrayList<>(list.subList(i, Math.min(N, i + L))));
    }
    return parts;
}

List<Integer> numbers = Collections.unmodifiableList(Arrays.asList(5,3,1,2,9,5,0,7));
List<List<Integer>> parts = chopped(numbers, 3);

System.out.println(parts); // prints "[[5, 3, 1], [2, 9, 5], [0, 7]]"
parts.get(0).add(-1);
System.out.println(parts); // prints "[[5, 3, 1, -1], [2, 9, 5], [0, 7]]"
System.out.println(numbers); // prints "[5, 3, 1, 2, 9, 5, 0, 7]" (unmodified!)
登录后复制

以上是如何在Java中将ArrayList拆分为多个较小的ArrayList?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板