四種常見的數據結構、LinkedList、Set集合、Collection、Map總結

四種常見的數據結構:
    1.堆棧結構:
        先進後出的特色。(就像彈夾同樣,先進去的在後進去的低下。)
    2.隊列結構:
        先進先出的特色。(就像安檢同樣,先進去的先出來)
    3.數組結構:
        查找元素快,可是增刪元素慢
    4.鏈表結構:
        增刪元素快,可是查找元素慢數組

LinkedList:(List接口下的一個子類,和ArrayList是同級別關系)
    1.底層是鏈表結構
    2.它的一些特有方法:
        addFirst(E  e) : 向集合中的開頭添加元素
        addLast(E  e):向集合的末尾添加元素 
        getFirst():獲得集合中的第一個元素
        getLast():獲得集合中的最後一個元素
        removeFirst():刪除集合中的第一個元素
        removeLast():刪除集合中的最後一個元素
        pop(E  e) : 從集合的最上面彈出一個元素
        push():向集合的最上面添加元素
        isEmpty() : 判斷集合中是否有爲空
    3.在開發時,LinkedList集合也能夠做爲堆棧,隊列的結構使用。在開發時,LinkedList集合也能夠做爲堆棧,隊列的結構使用。
        使用的方法是:調用addFirst(E  e) 方法和getFirst() 方法安全

Set集合(Set是一個接口,和List同樣,它倆也是同級別關系)
    Set集合的遍歷方式只有兩種,1.  加強for    2.  迭代器
    Set集合特色:
        惟一性,元素不重複
    1.Set的子類有:
        HashSet、LinkedHashSet
    2.HashSet:
        a.HashSet是無序的,存取順序不同
        b.底層是哈希表結構,一般自定義對象是須要重寫HashCode方法和equals方法
        c.HashSet是使用HashCode方法和equals方法來保證元素惟一的
        d.判斷原理是:
            先判斷HashCode方法
                相同:
                    不添加
                不相同:判斷equals方法:
                    不相同:添加
                    相同:不添加
LinkedHashSet:
    1.LinkedHashSet是有序的,存取順序是同樣的
    2.底層是鏈表+哈希表結構。
    3.經過鏈表來保證有序。經過哈希表來保證元素的惟一。數據結構

Collection總結:
    1.子類:
        List、Set(兩個都是接口)
            List子類:
                ArrayList
                LinkedList
            Set子類:
                HashSet
                LinkedHashSet
    2.Collection的方法:
        boolean  add(Object  e): 添加
        void   clear(): 清空
        boolean   remove(Object o):刪除
        boolean  contains(Object o): 包含
        boolean  isEmpty():是否爲空
        Iterator  iterator():迭代器
        int   size(): 集合長度
        Object   toArray(): 將集合存到數組中
    3.迭代器:
        兩個方法:
            hasNext():是否有下一個元素
            next(): 獲取下一個元素
    4.List和Set的區別:
        List:
            有序,且可有重複元素
        Set:
            它是一個無序的集合(元素存與取的順序可能不一樣)
            不能夠有重複的元素
    5.List集合中的特有方法:(有角標的都是List集合中的)
        void add(int index, Object element)   將指定的元素,添加到該集合中的指定位置上
        Object get(int index)     返回集合中指定位置的元素。
        Object remove(int index)    移除列表中指定位置的元素, 返回的是被移除的元素
        Object set(int index, Object element)   用指定元素替換集合中指定位置的元素,返回值的更新前的元素
    6.泛型:
        好處:
            提升了程序的安全性
            將運行時期的異常提到的編譯時期
            避免了類型轉換工具

Map:(它也是一個接口,它是和Collection同級別的,它是一個雙列集合)
    經常使用子類:
        HashMap<key , value>:
            泛型裏存儲鍵和值,鍵惟一,可是值能夠重複。底層是哈希表結構,基本和HashSet集合差很少,在存儲自定義對象時,須要重寫HashCode方法和equals方法。無序。
        LinkedHashMap:
            底層是鏈表+哈希表結構。有序,存和取的順序一致。
        方法:
            put(K,V):添加元素,至關於list集合中的add方法
            get(key):獲得key對應的值。
    Map遍歷(兩種方式)
        1. keySet()方法
            轉爲Set對象,獲取Map集合中的鍵集,存儲到Set集合中
            而後可以使用加強for或迭代器來獲取鍵和值都經過,鍵來獲取值。            
        2. entrySet()方法
            方法:
                getey()
                getValue()
            轉爲entry對象,獲取Map集合中的鍵和值的映射關係,存儲到entry對象中。
            而後,可使用加強for或迭代器來獲取鍵和值。
            都經過,鍵來獲取值。spa

    Properties類(通常和流一塊使用,它也是Map下的一個子類它是一個能夠持久化的屬性集。鍵值能夠存儲到集合中,也能夠存儲到持久化的設備(硬盤、U盤、光盤)上。鍵值的來源也能夠是持久化的設備。
(有和流技術相結合的方法。)對象

    1.public Object setProperty(String key, String value)調用 Map 的方法 put。
    2.public Set<String> stringPropertyNames()返回此屬性列表中的鍵集, //keyset()方法
    3.public String getProperty(String key)用指定的鍵在此屬性列表中搜索屬性//get()方法
        寫入文件的方法:
            store(Writer,」文件的描述信息」)
        讀取文件的方法:
            load(Reader)排序

    可變參數:
        表現格式爲:
            數據類型...   變量名
            至關於一個數組。接口

    Collections工具類
        方法
            shuff()隨機打亂方法
            sort()排序方法,按照天然規律排序。隊列

相關文章
相關標籤/搜索