protected List<List<BNRoutePlanNode>> routeList = new ArrayList<>(); 帮我把这个list设置成只能添加3次
时间: 2024-01-01 22:13:59 浏览: 81
可以通过继承 `ArrayList` 类并重写 `add` 方法来实现:
```java
public class LimitedArrayList<E> extends ArrayList<E> {
private int limit;
public LimitedArrayList(int limit) {
super();
this.limit = limit;
}
@Override
public boolean add(E e) {
if (size() >= limit) {
throw new UnsupportedOperationException("Exceeded size limit");
}
return super.add(e);
}
}
```
然后在代码中创建 LimitedArrayList 实例,并将其作为 routeList 的类型:
```java
protected List<LimitedArrayList<BNRoutePlanNode>> routeList = new ArrayList<>();
routeList.add(new LimitedArrayList<>(3));
routeList.add(new LimitedArrayList<>(3));
routeList.add(new LimitedArrayList<>(3));
```
这样每个 `routeList` 中的 `LimitedArrayList` 对象都只能添加 3 次元素,超过限制时会抛出 UnsupportedOperationException 异常。
阅读全文