我們都站在巨人的肩膀上
參考:http://www.cnblogs.com/forestwolf/p/5645179.html
1.容器概述
容器,就是可以容納其他java對象的對象。Java容器里只能放對象,對于基本類型(int, long, float, double等),需要將其包裝成對象類型后(Integer, Long, Float, Double等)才能放到容器里。
優點:
降低編程難度提高程序性能提高API間的互操作性降低學習難度降低設計和實現相關API的難度增加程序的重用性1.1接口與實現
接口:
Map接口沒有繼承自Collection接口,因為Map表示的是關聯式容器而不是集合。但Java為我們提供了從Map轉換到Collection的方法,可以方便的將Map切換到集合視圖。 上圖中提供了Queue接口,卻沒有Stack,這是因為Stack的功能已被JDK 1.6引入的Deque取代。
實現:
1.2迭代器(Iterator)
迭代器:
迭代器(Iterator)為我們提供了遍歷容器中元素的方法。Collection也繼承了Iterator,所以容器的核心就是迭代器的實現。
Collection接口源碼:
public interface Collection<E> extends Iterable<E>{ int size(); boolean isEmpty(); //此列表是否包含指定的元素 boolean contains(Object o); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] a); boolean add(E e); boolean remove(Object o); //此列表是否包含指定的集合 boolean containsAll(Collection<?> c); boolean addAll(Collection<? extends E> c); boolean removeAll(Collection<?> c); //取兩個集合的交集 boolean retainAll(Collection<?> c); void clear(); boolean equals(Object o); int hashCode();}Iterable 接口源碼:
public interface Iterable<T> {Iterator<T> iterator();}Iterator 接口源碼:
public interface Iterator<E>{ boolean hasNext(); E next(); void remove();}新聞熱點
疑難解答