📅  最后修改于: 2023-12-03 15:16:19.786000             🧑  作者: Mango
AbstractCollection
和示例AbstractCollection
是 Java 集合框架中的一个抽象类,它实现了 Collection
接口的大部分方法,提供了一些通用的方法和默认实现。其他的集合类可以继承 AbstractCollection
并实现其中的一些抽象方法来快速构建自定义的集合。
AbstractCollection
类的继承关系如下所示:
java.lang.Object
java.util.AbstractCollection<E>
AbstractCollection
类继承自 Object
类,实现了 Collection
接口。
AbstractCollection
类实现了 Collection
接口中的大部分方法,并提供了一些通用的方法。
一些常用的方法包括:
size()
:返回集合中的元素个数。isEmpty()
:判断集合是否为空。contains(Object o)
:判断集合中是否包含指定的元素。iterator()
:返回一个迭代器,可以用于遍历集合中的元素。toArray()
:将集合转换为一个数组。add(E e)
:向集合中添加指定的元素。remove(Object o)
:从集合中移除指定的元素。containsAll(Collection<?> c)
:判断集合是否包含指定集合中的所有元素。addAll(Collection<? extends E> c)
:将指定集合中的所有元素添加到集合中。removeAll(Collection<?> c)
:从集合中移除指定集合中的所有元素。clear()
:清空集合中的所有元素。下面是一个使用 AbstractCollection
的示例代码:
import java.util.AbstractCollection;
import java.util.Iterator;
public class MyCollection<E> extends AbstractCollection<E> {
private E[] elements;
private int size;
public MyCollection(E[] elements) {
this.elements = elements;
this.size = elements.length;
}
public int size() {
return size;
}
public Iterator<E> iterator() {
return new Iterator<E>() {
private int index = 0;
public boolean hasNext() {
return index < size;
}
public E next() {
return elements[index++];
}
};
}
// 示例中省略了其他抽象方法的实现
}
示例中定义了一个 MyCollection
类,它继承自 AbstractCollection
类,并实现了其中的部分抽象方法。通过重写 size()
和 iterator()
方法,我们可以自定义集合的大小和迭代器的行为。
public class Main {
public static void main(String[] args) {
String[] items = {"A", "B", "C"};
MyCollection<String> collection = new MyCollection<>(items);
System.out.println("集合大小:" + collection.size());
System.out.println("集合是否为空:" + collection.isEmpty());
System.out.println("遍历集合:");
for (String item : collection) {
System.out.println(item);
}
}
}
运行以上示例代码,输出结果如下:
集合大小:3
集合是否为空:false
遍历集合:
A
B
C
以上示例展示了一个自定义的集合类 MyCollection
,通过继承 AbstractCollection
类并实现部分抽象方法,我们可以快速构建自己的集合。