四種常見的數據結構、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或迭代器來獲取鍵和值。
            都通過,鍵來獲取值。

    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()排序方法,按照自然規律排序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM