gpt4 book ai didi

java - 根据列表中的项目数将 LinkedList 分成多个列表

转载 作者:太空宇宙 更新时间:2023-11-04 15:22:56 25 4
gpt4 key购买 nike

我的来源LinkedList有20300个项目。我需要将此列表分成每 2500 个项目的子列表,其余值(在本例中为 300)应出现在最终的 List 中。 .

请告诉我如何实现这一目标?

下面的代码工作正常,除了最后 300 个值之外,它抛出错误..

private static List<List<String>> split(LinkedList<String> src, int maxSize){
List<List<String>> splittedList = new ArrayList<List<String>>();
int itemsRemaining = src.size();
int start = 0;

while (itemsRemaining != 0) {
int end = itemsRemaining >= maxSize ? (start + maxSize) : itemsRemaining;

splittedList.add(src.subList(start, end));

int sizeOfFinalList = end - start;
itemsRemaining = itemsRemaining - sizeOfFinalList;
start = start + sizeOfFinalList;
}

return splittedList;

}

最佳答案

你在计算结尾时犯了一个错误。而不是

int end = itemsRemaining >= maxSize ? (start + maxSize) : itemsRemaining;

应该是

int end = start + (itemsRemaining >= maxSize ? maxSize : itemsRemaining);

或者更确切地说

int  end = start + Math.min(maxSize ,itemsRemaining);

请注意,在最后一个元素的版本中,末尾设置为剩余项目的数量,而不是原始列表的大小。

关于java - 根据列表中的项目数将 LinkedList 分成多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20222974/

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