Java集合类的组织结构和继承、实现关系

本文详细解析了Java集合框架中Collection和Map的继承与实现关系,包括List、Set、Queue等子接口及其具体实现类如ArrayList、LinkedList、HashSet等。同时对比了Iterable与Iterator接口的作用,以及Collection与Collections的区别。

 

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

 

 

 

 

.

转载于:https://www.cnblogs.com/lashou/p/6077560.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值