Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java I';当我将一个列表子列表到多个新列表中时,我缺少项目。如何在不丢失数据的情况下进行子列表?_Java_List_Hashmap - Fatal编程技术网

Java I';当我将一个列表子列表到多个新列表中时,我缺少项目。如何在不丢失数据的情况下进行子列表?

Java I';当我将一个列表子列表到多个新列表中时,我缺少项目。如何在不丢失数据的情况下进行子列表?,java,list,hashmap,Java,List,Hashmap,我有10个项目的清单: List<ServiceLineTypeResource> serviceLineList = serviceLineRepository.findAll(); …我想将其分为三个单独的列表,每个列表包含3项,不包括最后一项: List<ServiceLineTypeResource> serviceLineListRow1 = serviceLineList.subList(0, min(serviceLineList.size(), 3));

我有10个项目的清单:

List<ServiceLineTypeResource> serviceLineList = serviceLineRepository.findAll();
…我想将其分为三个单独的列表,每个列表包含3项,不包括最后一项:

List<ServiceLineTypeResource> serviceLineListRow1 = serviceLineList.subList(0, min(serviceLineList.size(), 3));
List<ServiceLineTypeResource> serviceLineListRow2 = serviceLineList.subList(4, min(serviceLineList.size(), 7));
List<ServiceLineTypeResource> serviceLineListRow3 = serviceLineList.subList(8, min(serviceLineList.size(), 11));
出于某种原因,它总是跳过列表中的第8项,
Virtualization
,而给出最后一项,
#
。我希望每个“行”列表包含三个项目,并且我不希望
#
出现在其中任何一个项目中。这是怎么回事?

返回此列表中指定的fromIndex(包含)和toIndex(独占)之间部分的视图

因此,如果您想要完成前9项需要完成的工作:

List<ServiceLineTypeResource> serviceLineListRow1 = serviceLineList.subList(0, min(serviceLineList.size(), 3));
List<ServiceLineTypeResource> serviceLineListRow2 = serviceLineList.subList(3, min(serviceLineList.size(), 6));
List<ServiceLineTypeResource> serviceLineListRow3 = serviceLineList.subList(6, min(serviceLineList.size(), 9));
List serviceLineListRow1=serviceLineList.subList(0,min(serviceLineList.size(),3));
List serviceLineListRow2=serviceLineList.subList(3,min(serviceLineList.size(),6));
List serviceLineListRow3=serviceLineList.subList(6,min(serviceLineList.size(),9));

返回此列表中指定的fromIndex(包含)和toIndex(独占)之间部分的视图

因此,如果您想要完成前9项需要完成的工作:

List<ServiceLineTypeResource> serviceLineListRow1 = serviceLineList.subList(0, min(serviceLineList.size(), 3));
List<ServiceLineTypeResource> serviceLineListRow2 = serviceLineList.subList(3, min(serviceLineList.size(), 6));
List<ServiceLineTypeResource> serviceLineListRow3 = serviceLineList.subList(6, min(serviceLineList.size(), 9));
List serviceLineListRow1=serviceLineList.subList(0,min(serviceLineList.size(),3));
List serviceLineListRow2=serviceLineList.subList(3,min(serviceLineList.size(),6));
List serviceLineListRow3=serviceLineList.subList(6,min(serviceLineList.size(),9));

只需查看您的索引即可。第一个子列表[0,3]包含索引0,1和2。第二个子列表[4,7]包含索引4,5和6。因此您忘记了索引3。请查看您的索引。第一个子列表[0,3]包含索引0,1和2。第二个子列表[4,7][包含4、5和6。所以您忘记了索引3。看起来不错,但对于我的上一个列表,我必须这样做:
list serviceLineListRow3=serviceLineList.subList(6,min(serviceLineList.size()-1,9));
@santafebound为什么?如果列表大小为9,而不是6、7和8,则只返回索引6和7。出于完全相同的原因,您创建了一个新的错误。但是,您应该做的是避免创建从3到2的子列表(例如)如果你的列表大小是2,因为这没有意义。@JBNizet如果他的列表有10个项目,那么它应该仍然对他有效,那么它将是
min(9,9)
。但是没有理由这样做。除非他可以有一个少于9个项目的列表,并且总是想忽略最后一个成员。使用min()真的没有意义如果列表保证有10个元素,那么到处都是。但是……你永远不知道。@santafebound然后你可以删除所有
min
,只使用数字3,6,9。顺便问一下
min
是什么?
Math.min
还是你自己的函数?看起来不错,但对于我的上一个列表,我必须这样做:
list serviceLineListRow3=serviceLineList.subList(6,min(serviceLineList.size()-1,9));
@santafebound为什么?如果列表的大小为9,而不是6、7和8,则只返回索引6和7。出于完全相同的原因,您创建了一个新错误。但是,您应该做的是避免创建从3到2的子列表(例如)如果你的列表大小是2,因为这没有意义。@JBNizet如果他的列表有10个项目,那么它应该仍然对他有效,那么它将是
min(9,9)
。但是没有理由这样做。除非他可以有一个少于9个项目的列表,并且总是想忽略最后一个成员。使用min()真的没有意义如果列表保证有10个元素,那么每个地方都有。但是……你永远不知道。@santafebound然后你可以删除所有
min
,只使用数字3,6,9。顺便问一下
min
是什么?
Math.min
还是你自己的函数?
Row 1: Backup
Row 1: COI
Row 1: Network
Row 2: SQL_Activities
Row 2: Storage
Row 2: Unix/Linux
Row 3: Windows
Row 3: #N/A
List<ServiceLineTypeResource> serviceLineListRow1 = serviceLineList.subList(0, min(serviceLineList.size(), 3));
List<ServiceLineTypeResource> serviceLineListRow2 = serviceLineList.subList(3, min(serviceLineList.size(), 6));
List<ServiceLineTypeResource> serviceLineListRow3 = serviceLineList.subList(6, min(serviceLineList.size(), 9));