Collection體系、遍歷、泛型

Collection體系(集合類,它是一個接口):
    兩個子類:
        List、Set(這兩個子類也是接口)
            List有兩個經常使用子類:(值,不惟一,容許有重複的元素,都是有序的)
                ArrayList:
                    數組結構,查找快,增刪慢。線程不安全。
                LinkedList:
                    有序,鏈表結構,查找慢,增刪快。線程不安全。
                Vector:(以過期)
                    有序,數組結構,查找增刪都慢。線程安全。
            Set:有三個經常使用子類(值,惟一,不容許有重複的元素)
                HashSet:
                    底層是哈希表結構,無序。
                    如何保證惟一性的?
                        由HashCode和equals方法保證惟一性的。
                    順序:
                        先判斷HashCode方法
                            相同:判斷equals方法,相同:不添加。不相同:添加
                            不相同:添加
                LinkedHashSet:
                    有序,底層是鏈表加哈希表結構,由鏈表保證有序,哈希表保證惟一。
                TreeSet:
                    底層是二叉樹結構,有必定的天然排序算法。
                    是如何保證元素的惟一性的?
                        根據返回值是不是0判斷是否重複。而且還要保證元素有序:
                            根據返回值是正數仍是負數。
                            實現方案:添加比較器
                                元素具有比較器:實現Comparable接口,重寫CompareTo方法。
                                集合具有比較器:實現Comparator接口,重寫Compare方法。
 
                                
 
List和Set集合遍歷的幾種方式:
    Set集合是沒有普通for的遍歷方式
    普通for、加強for、迭代器
        普通for格式:
            for(int i = 0; i < list.size(); i++){}
        加強for格式:
            for(類型 變量名 : 集合名){}
        迭代器格式:(提供了兩個方法:hasNext和next方法)
            Iterator<類型> it = 集合名.iterator();
    何時使用?
        須要操做集合的角標的時候使用普通for
        只須要遍歷集合的時候使用加強for或迭代器。
        
        
泛型:
    泛型的通配符爲:?
    <? extends T> 向下限制,只能夠傳遞T類型或T類型的子類
    <? super T> 向上限制,只能夠傳遞T類型或T類型的父類
泛型的定義:定義泛型能夠在類中預支地使用未知的類型。可定義在類、方法或接口上。
泛型的使用:通常在建立對象時,將未知的類型肯定具體的類型。當沒有指定泛型時,默認類型爲Object類型。
泛型的好處:
    將運行時期的ClassCastException,轉移到了編譯時期變成了編譯失敗。
    避免了類型強轉的麻煩。
泛型的格式:
    類上:
    修飾符 class 類名<表明泛型的變量> {  }
        使用格式:
            使用格式:建立對象時,肯定泛型的類型
    接口上:
    interface 類名<表明泛型的變量>{ }
        使用格式:
            一、定義類時肯定泛型的類型
            二、始終不肯定泛型的類型,直到建立對象時,肯定泛型的類型
 
    方法上:
    修飾符<> 返回值類型 方法名(泛型變量  變量名){}
        使用格式:
            使用格式:調用方法時,肯定泛型的類型
相關文章
相關標籤/搜索