当前位置: 首页 > 面试题库 >

如何将数组列表分成相等的部分?

应煌
2023-03-14
问题内容

无论如何,有没有将ArrayList拆分成不同的部分,直到运行时才知道它的大小?我知道有一种方法叫做:

list.subList(a,b);

但我们需要明确提及列表的起始和结束范围。我的问题是,我们得到一个包含帐号的数组列表,该数组具有类似2000,4000个帐号的数据(在编码期间不会知道这些数字),我需要将此帐号传递给PL
/ SQL的IN查询,如下IN不支持超过1000个值,我试图将其拆分成多个块并将其发送给查询

注意:我不能使用任何外部库,例如Guava等。


问题答案:

这应该给您所有的部分:

int partitionSize = 1000;
List<List<Integer>> partitions = new LinkedList<List<Integer>>();
for (int i = 0; i < originalList.size(); i += partitionSize) {
    partitions.add(originalList.subList(i,
            Math.min(i + partitionSize, originalList.size())));
}


 类似资料:
  • 问题内容: 将列表分为大致相等的最佳方法是什么?例如,如果列表有7个元素并将其分为2部分,则我们要在一部分中获得3个元素,而另一部分应具有4个元素。 我正在寻找类似的东西,打破成部分。 上面的代码给出了3个块,而不是3个块。我可以简单地进行转置(对此进行迭代,并取每列的第一个元素,将其称为第一部分,然后取其第二,然后将其置于第二部分,依此类推),但这样会破坏项目的顺序。 问题答案: 这是一个可行的

  • 问题内容: 我对Java还是很陌生,并且遇到了一个特定的家庭作业问题,在该问题上,字符串得到了传递,然后我必须将其从此拆分成与所传递的Integer相等的部分。 例如:输入字符串“ HelloWorld”,必须将其除以2,然后将这些部分放入具有以下两个部分的数组中:array [hello,world]。 反正有使用FOR循环执行此操作吗? 到目前为止,我的代码将整个String输入每个数组元素。

  • 问题内容: 我已经阅读了[将列表切成n个几乎相等长度的分区重复问题的答案。 这是公认的答案: 我想知道,如何修改这些解决方案,以便将项目随机分配给分区而不是增量分配。 问题答案: 对列表进行分区之前先对其进行调用。

  • 我想检查是否可以将一个数组拆分为具有相同和的连续子数组。拆分数组还意味着删除数组的边框元素。 例如,要将其拆分为3个部分,我们需要删除到元素 通过删除这2个元素,就有3个相同和的连续子数组,和。 因此,如果可以将数组拆分为3个部分(等和)并删除它们之间的边界,则应返回true,否则应返回false。 返回的示例是。因为删除2个元素后,它将有4个元素,这些元素不能分组为3个相等的和 我不知道如何处理

  • 问题内容: 我有一个字符串,我想分成N个相等的部分。 例如,假设我有一个长度为128的字符串,我想将其分成4个长度为32的块;也就是说,第一个32个字符,然后第二个32个字符,依此类推。 我怎样才能做到这一点? 问题答案: import textwrap print textwrap.wrap(“123456789”, 2) #prints [‘12’, ‘34’, ‘56’, ‘78’, ‘9’

  • 我试图将一个数据列表一分为二,但我不知道如何正确执行。 当我使用dput(a)时,我的数据如下 结构(列表)(V1=结构(c(1L、9L、10L、11L、12L、13L、14L、15L、16L、2L、3L、4L、5L、6L、7L、8L)。标签=c(“1\t1200.30”,“10\t1305.80”,“11\t1263.02”,“12\t1312.67”,“13\t1229.85”,“14\t12