我有ArrayList
。该阵列可以包含4个项目或4000个项目。我想找到中间4项。我的猜测是size / 2
得-2 +2。什么是最有效的方法,你如何处理奇数?
if (comparables.size() > 4) {
int size = comparableVehicles.size();
System.out.println("size " + size);
int middle = size / 2;
System.out.println("middle " + middle);
int bottom = middle - 2;
System.out.println("bottom " + bottom);
this.comparables = comparables.subList(bottom, bottom + 4);
}
答案 0 :(得分:1)
您正在使用的sublist
电话可能是最有效的方法。关于奇怪大小的列表 - 根据定义,它们没有"中间四个元素"。无论你如何采用四个元素,它们总是一个元素靠近一侧或另一侧。你能做的最好的事情就是做出良心的决定,并坚持下去。在你的代码片段中,使用整数除法事实决定使"中间"更接近列表的开头。 TL; DR - 您的代码很好。