gpt4 book ai didi

java - 将列表划分为 n 大小列表的有效方法

转载 作者:IT老高 更新时间:2023-10-28 20:30:49 29 4
gpt4 key购买 nike

我有一个 ArrayList,我想将其分成 n 大小的较小 List 对象,并对每个对象执行操作。我目前执行此操作的方法是使用 Java 中的 ArrayList 对象实现的。任何伪代码都可以。

    for (int i = 1; i <= Math.floor((A.size() / n)); i++) {
ArrayList temp = subArray(A, ((i * n) - n),
(i * n) - 1);
// do stuff with temp
}

private ArrayList<Comparable> subArray(ArrayList A, int start,
int end) {
ArrayList toReturn = new ArrayList();
for (int i = start; i <= end; i++) {
toReturn.add(A.get(i));
}
return toReturn;
}

其中 A 是列表,n 是所需列表的大小

我认为在处理多达 100 万个相当大的列表时,这种方式会花费太多时间,因此我正在尝试找出更有效的方法。

最佳答案

你会想做一些利用 List.subList(int, int) 的事情。 View 而不是复制每个子列表。要真正轻松地做到这一点,请使用 GuavaLists.partition(List, int)方法:

List<Foo> foos = ...
for (List<Foo> partition : Lists.partition(foos, n)) {
// do something with partition
}

请注意,与许多事情一样,对于不是 RandomAccessList(例如 LinkedList )。

关于java - 将列表划分为 n 大小列表的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5824825/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com