是否可以使用大小为-1的ArrayList?

时间:2015-09-22 16:37:14

标签: java arraylist

是否可以使用大小为-1的ArrayList?或者至少有一些标志设置为小于0的数字/无效我可以用来检测条件?

1 个答案:

答案 0 :(得分:2)

本着回答问题的精神,提供的ArrayList类的大小是非负的,但是,正如一些评论所暗示的那样,您可以覆盖size()方法中的ArrayList方法。 public class MyArrayList<T> extends ArrayList<T> { @Override public int size() { if (somecondition) { return -1; } return super.size(); } } 类,让它返回你想要的东西。

List

然而,应该注意的是,对于实现ArrayList接口的类的重写方法存在严重影响,其中这些类的某些用户期望这些方法的声音实现,并添加其他功能可以打破那份合同。检测std::vector<std::unique_ptr<int>> v; auto it = std::find(v.begin(), v.end(), [=](std::unique_ptr<int>& p){ return p.get() == ptr; // or *p == *ptr }); if (it != v.end()) { std::unique_ptr<int> u = std::move(*it); v.erase(it); // do something with u } 外部的情况并使用它可能是一个更好的主意,因为它可能有更好的方法来完成您描述的内容。