如何获得Arraylist的中心4()

时间:2014-12-08 06:42:40

标签: java arraylist

我有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);
}

1 个答案:

答案 0 :(得分:1)

您正在使用的sublist电话可能是最有效的方法。关于奇怪大小的列表 - 根据定义,它们没有"中间四个元素"。无论你如何采用四个元素,它们总是一个元素靠近一侧或另一侧。你能做的最好的事情就是做出良心的决定,并坚持下去。在你的代码片段中,使用整数除法事实决定使"中间"更接近列表的开头。 TL; DR - 您的代码很好。