ArrayList
是 Java 中的一个动态数组实现,它允许我们在列表的两端插入和删除元素。IntRanges
通常指的是一系列整数范围的集合,可能是一个自定义的数据结构,用于表示一段连续的整数。
ArrayList
提供了动态数组的功能,能够在运行时自动调整大小。ArrayList
支持通过索引快速访问元素。ArrayList<Integer>
存储整数。ArrayList<IntRange>
存储自定义的整数范围对象。假设我们有一个 ArrayList<IntRange>
,我们需要从中删除某些 IntRange
并拆分结果。以下是一个示例代码:
import java.util.ArrayList;
import java.util.List;
class IntRange {
int start;
int end;
public IntRange(int start, int end) {
this.start = start;
this.end = end;
}
@Override
public String toString() {
return "[" + start + ", " + end + "]";
}
}
public class Main {
public static void main(String[] args) {
List<IntRange> ranges = new ArrayList<>();
ranges.add(new IntRange(1, 5));
ranges.add(new IntRange(6, 10));
ranges.add(new IntRange(11, 15));
// 假设我们要删除范围 [6, 10]
IntRange toRemove = new IntRange(6, 10);
List<IntRange> result = new ArrayList<>();
for (IntRange range : ranges) {
if (!range.equals(toRemove)) {
result.add(range);
}
}
// 拆分结果
List<List<IntRange>> splitResults = new ArrayList<>();
for (IntRange range : result) {
if (range.start > 10) {
splitResults.add(List.of(range));
} else {
if (splitResults.isEmpty() || splitResults.get(splitResults.size() - 1).get(0).end < 5) {
splitResults.add(List.of(range));
} else {
splitResults.get(splitResults.size() - 1).add(range);
}
}
}
// 输出结果
for (List<IntRange> splitResult : splitResults) {
System.out.println(splitResult);
}
}
}
IntRange
类:用于表示整数范围。ArrayList<IntRange>
:初始化一些整数范围。IntRange
。通过上述代码和解释,你可以了解如何从 ArrayList
中删除 IntRange
并拆分结果。
领取专属 10元无门槛券
手把手带您无忧上云