首页 > 解决方案 > 从某个位置获取arraylist 10个项目

问题描述

这样的问题,列表中有100个职位,我只拿到了职位,从这个职位我想收到以下10个项目。例如,我得到30,我想返回职位30-40

我试过sublist(30,30+10)了,但是当它结束时,一个错误。

ArrayList<Model> numList = new ArrayList<>();

在 numList 我有 100 个项目;

ArrayList<Model> numList2 = new ArrayList<>();

在 numlist2 我想从 30 到 40,但我只有 30 的起始位置,我需要的大小是 10。

标签: javaarraylist

解决方案


javadoc总是提供丰富的信息。

List<Model> numList2 = numList.subList(30, 40); // 40 exclusive

numList2 在两个方向都由 numList 支持:

 numList2.set(0, ...); // numList.get(30) changed
 numList.set(31, ...); // num2List.get(1) changed

独立名单:

List<Model> numList2 = new ArrayList(numList.subList(30, 40));

List<Model> get10(List<Model> numList, int i) {
    if (i >= numList.size()) {
        return new ArrayList<>();
    }
    int i2 = Math.min(i + 10, numList.size());
    return new ArrayList(numList.subList(i, i2));
}

推荐阅读