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

    .

  • 相关阅读:
    模块化工具require 学习笔记
    学习Jade模板引擎
    通过border来实现各种三角符号
    使用vscode 编译 sass
    Javascript 运行机制
    Vue调试工具 vue-devtools
    MVVM框架
    通信类
    面向对象
    原型和原型链
  • 原文地址:https://www.cnblogs.com/lashou/p/6077560.html
Copyright © 2011-2022 走看看