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是一个工具类。内有多个对集合对象进行操作的静态方法,不能实例化。

 

 

 

 

.

posted @ 2016-11-18 14:54  lashou  阅读(2063)  评论(0编辑  收藏  举报