Java集合類的組織結構和繼承、實現關系


 

Collection繼承、實現關系如下(說明(I)表示接口,(C)表示Java類,<--表示繼承,<<——表示實現):

(I)Iterable

          |<--(I)Collection

                            |<--(I)List

                                         |<<——(C)ArrayList

                                         |<<——(C)LinkedList

                                         |<<——(C)Vector

                            |<--(I)Set

                                         |<<——(C)HashSet

                            |<--(I)Queue [kju]

Map繼承、實現關系如下

Map

     |<<——(C)HashMap

     |<<——(C)HashTable

Iterable:

package java.lang;
import java.util.Iterator;
public interface Iterable<T> {
    Iterator<T> iterator();
}

Iterator:

package java.util;
public interface Iterator<E> {
    boolean hasNext();
    E next();
    void remove();
}

Collection:

package java.util;
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();
}

 Map:

package java.util;
public interface Map<K,V> {   
    int size();
    boolean isEmpty();
    boolean containsKey(Object key);
    boolean containsValue(Object value);  
    V get(Object key); 
    V put(K key, V value);  
    V remove(Object key);
    void putAll(Map<? extends K, ? extends V> m);
    void clear();
    Set<K> keySet();
    Collection<V> values();
    Set<Map.Entry<K, V>> entrySet();
    interface Entry<K,V> {
        K getKey();
        V getValue();
        V setValue(V value);
        boolean equals(Object o);
        int hashCode();
    }
    boolean equals(Object o);
    int hashCode();
}

 

 1、Collection和Map的區別

Collection和Map最大的區別就是Collection存儲的是一組對象;Map是以“鍵值對”的形式對對象進行的管理。

2、Iterable和Iterator

    Iterator是迭代器,Iterable是接口。很多類,像List、Set、HashMap不直接實現迭代器接口Iterator,而是去實現Iterable接口,是因為:

    Iterator的方法next()和hasNext()是依賴當前迭代位置的,直接實現Iterator,集合在不同方法間傳遞時,會包含一個當前迭代位置的指針;

    而Iterable每次調用都會返回一個從頭開始計數的迭代器。

3、Collection和Collections的區別

    Collection是一個集合接口。它提供了對集合對象進行進本操作的通用接口方法。

    Collections是一個工具類。內有多個對集合對象進行操作的靜態方法,不能實例化。

 

 

 

 

.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM