Java 面试题
目录

Java 中如何实现一个自定义的集合类?

· 约 4 分钟读完 · 第 24 / 274 章

推荐答案

本题详细解读

1. 继承 AbstractCollection

AbstractCollection 是 Java 集合框架中的一个抽象类,它提供了集合类的基本实现。通过继承 AbstractCollection,我们可以减少实现自定义集合类时需要覆盖的方法数量。只需要实现 iterator() 和 size() 方法即可。

2. 实现 add() 方法

add() 方法用于向集合中添加元素。在这个实现中,我们首先检查数组是否已满,如果已满则调用 resize() 方法扩展数组容量。然后将新元素添加到数组的末尾,并增加 size 计数。

3. 实现 iterator() 方法

iterator() 方法返回一个 Iterator 对象,用于遍历集合中的元素。我们在这里实现了一个匿名内部类,覆盖了 hasNext() 和 next() 方法,以便能够遍历数组中的元素。

4. 实现 size() 方法

size() 方法返回集合中当前元素的数量。在这个实现中,我们直接返回 size 变量的值。

5. resize() 方法

resize() 方法用于扩展数组的容量。当数组已满时,我们创建一个新的数组,容量是原数组的两倍,并将原数组中的元素复制到新数组中。

6. 泛型支持

通过使用泛型 E,我们的自定义集合类可以存储任意类型的对象。这使得集合类更加灵活和通用。

7. 注意事项

  • 这个实现是一个简单的示例,实际应用中可能需要考虑更多的边界情况和性能优化。
  • 如果需要支持删除操作,还需要实现 remove() 方法。
  • 如果需要支持并发访问,还需要考虑线程安全问题。