高效率抽取List里面Id连续相邻的数据的Java代码
时间: 2023-12-06 22:03:28 浏览: 77
可以使用双指针法来抽取List里面Id连续相邻的数据。具体实现如下:
```java
public List<List<Integer>> extractConsecutiveIds(List<Integer> ids) {
List<List<Integer>> result = new ArrayList<>();
if (ids == null || ids.isEmpty()) {
return result;
}
int left = 0;
int right = 1;
while (right <= ids.size()) {
if (right == ids.size() || ids.get(right) != ids.get(right - 1) + 1) {
result.add(ids.subList(left, right));
left = right;
}
right++;
}
return result;
}
```
其中,left和right分别表示左指针和右指针,初始值都为0。当右指针指向的元素不再连续时,我们就把左指针到当前右指针位置之间的元素加入到结果集中,并把左指针更新为当前右指针位置。最后返回结果集即可。
阅读全文