其他分享
首页 > 其他分享> > 泛型实用方法_0109

泛型实用方法_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