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

    .

  • 相关阅读:
    三大平衡树(Treap + Splay + SBT)总结+模板
    Nim游戏与SG函数 ——博弈论小结
    POJ2104 (平方分割)二分查找理解。
    POJ 1568 极大极小搜索 + alpha-beta剪枝
    数论基础算法总结(python版)
    极小极大搜索 的个人理解(alpha-beta剪枝)
    POJ 2891 中国剩余定理的非互质形式
    欧拉函数相关的题目
    数学专题(转)
    编码问题的觉悟
  • 原文地址:https://www.cnblogs.com/lashou/p/6077560.html
Copyright © 2011-2022 走看看