我有一个类,它维护类的功能列表。与读取相比,这些特征很少改变。读取几乎总是通过特征列表进行迭代。因此,我使用的是CopyOnWriteArrayList
.
我想要这样的功能:
function Feature[] getFeatures() {
.. implementation goes here ..
}
我承认,原因可能是有点懒惰。我想写这样的代码:
for (Feature f: object.getFeatures()) {
.. do something interesting ..
}
而不是这个:
Iterator<Feature> iter = object.getFeatureIterator();
while (iter.hasNext()) {
Feature f = iter.next();
.. do something interesting ..
}
主要问题是 - 我在这里偷懒了吗?我将经常遵循这种模式,并且我认为第一段代码更容易维护。显然,我永远不会更改底层数组,我会将其放入文档中。
处理这种情况的正确方法是什么?