java数组中从第一次出现的数据到下一次出现的数据都要取出包括中间的数据
时间: 2024-09-15 11:12:41 浏览: 36
数据结构与算法java中文
在Java中,如果你想要获取数组中连续子数组(包含从第一次出现某元素到最后一次出现该元素的所有元素),你可以使用循环和索引来实现。例如,假设你想找出数组`arr`中元素`target`的所有连续子数组,可以这样做:
```java
import java.util.ArrayList;
import java.util.List;
public List<int[]> findSubarraysWithTarget(int[] arr, int target) {
List<int[]> result = new ArrayList<>();
int start = -1; // 记录上一次出现目标元素的位置
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) { // 找到目标元素
if (start != -1) { // 如果不是首次出现,记录子数组
int end = i;
result.add(Arrays.copyOfRange(arr, start + 1, end + 1)); // 创建并添加子数组
}
start = i; // 更新开始位置
} else if (start != -1) { // 当前元素不是目标,但之前有出现过
start = -1; // 从当前元素后重新开始寻找
}
}
if (start != -1 && arr[start] == target) { // 检查最后一个可能的子数组
int end = arr.length - 1;
result.add(Arrays.copyOfRange(arr, start + 1, end + 1));
}
return result;
}
```
这个函数会返回一个列表,其中包含了所有找到的符合条件的子数组。
阅读全文