我对其他语言有经验,但对 Java 很陌生。作为针对特定情况的优化,我尝试从数组实现可迭代容器类,因为我知道我的容器一次最多容纳 4 个项目,并且这些项目每个都属于特定索引,而不是第一个索引in 获取可用的最低索引。
为了节省我在迭代列表时检查 null 的情况,我只希望返回迭代的非空值...下面的“iterator()”重写是否有效?在我迭代它之前,垃圾收集器是否有机会清除我返回的可迭代列表?或者有更好的方法来实现这一目标吗?
class FixedArray<T> implements Iterable<T> {
FixedArray() {}
public void add(byte index, T item) {
array[index] = item;
}
@Override
public Iterator<T> iterator() {
List<T> listWithoutNull = new ArrayList<>();
for (Item item: array) {
if (item != null) {
listWithoutNull.add(item);
}
}
return listWithoutNull.iterator();
}
private final T[] array = { null, null, null, null };
}
万千封印
相关分类