从某个位置获取arraylist 10个项目

时间:2019-10-21 10:05:32

标签: java arraylist

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

我尝试了sublist(30,30+10),但最后还是出错了。

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

在numList中,我有100个项目;

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

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:-1)

这里是您可以尝试的一些方法。只需从下面的代码中将您的类替换为Integer。

ArrayList<Integer> numList = new ArrayList<>(); //Replace Integer with your class

IntStream.range(1, 101).forEach(v -> numList.add(v)); //Filled out data

ArrayList<Integer> numList2 = numList.subList(30, 30 + 10); //Print 30 to 40
numList2 .forEach(val -> {
    System.out.println("data: " + val);
});;

答案 2 :(得分:-1)

  

公共列表子列表(int fromIndex,int toIndex)

您可以使用上述方法。

ArrayList numList2 =新的ArrayList(numList.subList(30,40));

    if(toIndex<=numList .size()) {
        retutn numListsubList(fromIndex, toIndex);
    }else {
        return new ArrayList<Model>();
    }

其中fromIndex和toIndex是变量,可以根据您的要求进行传递。