这样的问题,列表中有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。
答案 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是变量,可以根据您的要求进行传递。