从某个位置获取数组列表 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。

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

这里有一些你可以尝试的方法。只需从下面的代码中用整数替换您的类。

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

public List subList(int fromIndex,int toIndex(

您可以使用上述方法。

ArrayListnumList2 = new ArrayList(numList.subList(30, 40((;

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

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

最新更新