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

    .

  • 相关阅读:
    筛选数据
    sed实现路径替换
    mask rcnn
    py faster rcnn+ 1080Ti+cudnn5.0
    反对迭代0:停止拖延,开始迭代
    故事点数是对工时的度量
    放弃在每日站会上按成员逐个发言
    So Easy!7000元Scrum认证课1元抢~
    用leangoo怎么做需求管理及规划?(产品Backlog、用户故事)
    怎么用leangoo做需求管理?(用户故事地图)
  • 原文地址:https://www.cnblogs.com/lashou/p/6077560.html
Copyright © 2011-2022 走看看