泛型实用方法_0109
作者:互联网
由于Collection与Iterator都是泛型接口,这意味着你可以编写处理任何集合类型的实用方法。
Java类库的设计者认为,有一些方法十分有用,应该将他们提供给用户使用,这样类库使用者就不用自己再构建这些方法了。
事实上,Collection接口声明了很多有用的方法,如:
int size()
booleam isEmpty()
boolean contains(Object obj)
boolean containsAll(Collection<?> C)
boolean equals(Object other)
...
当然,如果每一个实现Collection接口的类都要实现如此多的方法,这会很烦人,所以Java类库提供了一个抽象类AbstractCollection,他保持基础方法size和iterator仍为抽象方法,但是为实现者实现了其他方法。例如:
public abstract class AbstractCollection<E> implements Collection<E> {
...
public absrtact Iterator<E> iterator();
public boolean contains(Object obj) {
for (E element : this) {
if (element.equals(obj)) {
return true;
}
return false;
}
...
}
这样一来,具体集合类可以扩展此类。
具体的集合类来实现iterator方法,此超类提供contains方法。
不过这种做法有些过时,这些方法最好是Collection接口,但是实际上并不是这样。不过确实有很多已经增加进来成为了默认方法,大部分都与流处理有关。
另外还有一个十分有用的方法:
default boolean removeIf(Predicate<? super E> filter)
这个方法用于删除满足某个条件的元素。
标签:类库,0109,iterator,Object,Collection,实用,boolean,泛型,方法 来源: https://blog.csdn.net/whr19970424/article/details/112426009