Collection這個類是其實只是一個接口,而他的實現類是AbstractCollection這個類。
public abstract class AbstractCollection<E> implements Collection<E>。
源碼中首先定義了兩個方法:
public abstract Iterator<E> iterator();
public abstract int size();
繼承他的所有子類都要實現這兩個方法。
isEmpty這個方法源碼很簡單就是判斷一下其屬性size是不是等於0。
public boolean isEmpty() {
return size() == 0;
}
List繼承Collection缺沒有重寫他的isEmpty方法。
注意:並沒有判斷null,所以list的的空判斷一定是 list !=null && !list.isEmpty() 有不少人只寫一個isEmpty() ,這樣會出空指針的!!!