Java之容器

    容器
Collection接口定義了存取一組對象的方法,其子接口Set和List分別定義了存儲方式
    ·Set中的數據對象沒有順序且不能夠重複    HashSet
    ·List中的數據對象有順序且能夠重複        LinkedList(底層爲鏈表)  ArrayList(底層爲數組)
        
·Array讀快改慢
·Linked改快讀慢
·Hash二者之間

Map接口定義了存儲「鍵(key) - 值(value)映射對」的方法    HashMap

①Collection接口中所定義的方法
    int size()
    boolean isEmpty()
    void clear()
    boolean contains(object element)    //是否包含了element元素
    boolean add(object element)
    boolean remove(object element)
    Iterator iterator();
    boolean containsAll(Collection c)    //是否包含了集合c裏面的全部元素
    boolean addAll(Collection c)        
    boolean removeAll(Collection c)        //移除有集合c裏面的全部元素
    boolean retainAll(Collection c)        //跟另外一個集合的交集
    Object[] toArray()

②Iterator接口        爲了統一遍歷Collection中方法,
    ·全部實現了Collection接口的容器類都有一個iterator方法用以返回一個實現了Iterator接口的對象
    ·Iterator對象稱做迭代器,用以方便的實現對容器內元素的遍歷操做
    ·Iterator接口定義了以下方法
        ·boolean hasNext()    //判斷遊標右邊是否有元素
        ·object next()        //返回遊標右邊的元素並將遊標移動到下一個位置
        ·void remove()        //刪除遊標左面的元素,在執行完next以後該操做只執行一次
補充:加強的for循環  
    缺陷:
        ·數組:不能方便的訪問下標值
        ·集合:與使用iterator相比,不能方便的刪除集合中的內容
    總結:除了簡單遍歷並讀出其中的內容
    int[] arr = {1,2,3,4,5};
    for(int i : arr){
        System.out.println(i);
    }

    Collection c = new ArrayList();
    c.add();
    c.add();
    c.add();
    for(Object o : c){
        System.out.println(o);
    }


③Set接口
    ·Collection的子接口,Set接口沒有提供額外的方法,但實現Set接口的容器類中的元素是沒有順序的,並且不能夠重複
    ·Set容器能夠與數學中「集合」的概念相對應
    ·J2sDK API中所提供的Set容器類有HashSet,TreeSet等

④List接口
    ·List接口是Collection的子接口,實現List接口的容器類中的元素是有順序的,能重複的
    ·List容器中的元素都對應一個整數型的序號記載其在容器中的位置,能夠根據序號存取容器中的元素
    ·J2SDK 所提供的List容器類有ArrayList,LinkedList等。
        List容器經常使用算法
            ·void sort(List) 對List容器內的元素排序
            ·void shuffle(List) 對List容器內的對象進行隨機排序
            ·void reverse(List) 對List容器內的對象進行逆序排列
            ·void fil(List, object) 用一個特定的對象重寫整個List容器
            ·coid copy(List dest, List src) 將src List容器內容拷貝到dest List容器
            ·int binarySearch(List,object) 對於順序的List容器,採用折半查找的方法查找特定對象

⑤comparable接口
    ·全部能夠「排序」的類都實現了此方法,
    ·只有一個方法public int compareTo(object obj);
        返回0 表示 this == obj
        返回正數 表示 this > obj
        返回負數 表示 this < obj

⑥Map接口    
    ·實現Map接口的類用來存儲鍵 -值 對
    ·Map接口的實現類有HashMap 和 TreeMap 等
    ·Map類中存儲的鍵 - 值對經過鍵來標識,因此鍵值不能重複
        Object put(Object key, Object value)
        Object get(Object key)
        Object remove(Object key)
        boolean containsKey(Object key)
        boolean containsValue(Object value)
        int size()
        boolean isEmpty()
        void putAll(Map t)
        void clear()

自動打包 Auto-boxing/unboxing
    ·在覈實的時機自動打包、解包
    ·自動將對象轉換爲基礎類型



泛型Generic
原由:
    ·JDK1.4之前類型不明確:
        ·裝入集合的類型都被看成Object對待,從而失去本身的實際類型
        ·從集合中取出時每每須要轉型,效率低,容易產生錯誤
解決辦法
    ·在定義集合的時候同時定義集合中對象的類型
    ·實例:
        ·能夠再定義Collection的時候指定
        ·也能夠在循環時用Iterator指定
    List<String> c = arrayList<String>();
    Iterator<String> it = c2.iterator();
    
    
好處
    ·加強程序的可讀性和穩定性


補充:Object是全部類的父類,其中的一些方法
    toString()方法
    ·public String toString() 描述當前對象的有關信息
    ·在進行String與其它類型數據的鏈接操做時,(如:System.out.println("info" + person))將自動調用該對象類的toString()方法
    ·能夠根據須要在用戶自定義類型中重寫toString()方法

    hashCode()方法
    哈希碼

    equals()方法 至關於「==」 因此大多數類中重寫了equals()方法
    public boolean equals(Object obj)

    比較對象是否相等,重寫
    public boolean equals(Object obj){
        if(obj == null) return false;
        else{
            if(obj instanceof class){    //class類,判斷obj是否屬於class類
                Class c = (class)obj;
                if(c.color == this.color && ...){   //全部屬性都相同
                    return true;
                }
            }

        }
    }



總結:1136
    ·一個圖
        Collection                Map
        /    \                 |
         set    list                  hashMap
         /        /   \
       hashSet arrayList  linkedList            
    ·一個類
        ·Collections
    ·三個知識點
        ·for
        ·Generic(泛型)
        ·Auto-boxing/unboxing
    ·六個接口
        ·colleciton
        ·set
        ·list
        ·map
        ·Iterator
        ·comparable

算法

相關文章
相關標籤/搜索