java集合學習筆記

來源:互聯網
上載者:User

標籤:對象   ash   offer   學習筆記   boolean   png   space   重複   迭代   

集合容器結構圖:

java容器類類庫的用途是儲存對象,分為兩個概念,collection和map。collection儲存單一的元素,而map儲存相關聯的索引值對。


collection    中基本方法:

int size():擷取集合的元素個數

boolean add(E e):向集合中添加元素

boolean remove(Object o):刪除給定的元素

boolean isEmpty():判斷集合是否不含有元素

void clear():清除集合中所有元素

boolean contains(Object o):集合中是否含有給定元素

boolean addAll(Collection c):將給定集合中的所有元素添加到當前集合

boolean removeAll(Collection c)刪除當前集合中與給定集合相同的元素


List    list介面在collection的基礎上添加了大量的方法,使得可以在list的中間插入和移除元素。

boolean add(int index, E element)  

boolean addAll(index, collection)

boolean remove(int index)

set(int index, E element) 

get( int index)

subList(int fromIndex, int toIndex)

indexof()

lastIndexof()

listIterator()

當使用contains,indexof,remove時,都會用到equals()方法,對於不同的類,equals的定義是不同的,使用時需注意。  

  1. ArrayList    適於隨機訪問,但插入和刪除元素較慢

  2. LinkedList    低價的插入和刪除,提供了最佳化的順序訪問,但在隨機訪問方面較慢。

    除了實現基本的list介面外,還添加了可以使其用作棧,隊列,或雙端隊列的方法,這些方法有的只是名字有差別,有的差別不大,只是為了在特定上下文中更適用。如Queue介面窄化了對LinkedList的方法的存取權限,在方法中的參數類型如果是Queue時,就只能訪問Queue介面所定義的方法,而不能直接存取 LinkedList的非Queue的方法。

    getFirst()

    element()

    peek()

    都是返回列表的第一個元素,當列表為空白時,getFirst和element拋出異常,而peek返回null。

    remove()

    removeFirst()

    poll()

    移除並返回列表的頭,當列表為空白時,getFirst和element拋出異常,而peek返回null。

    addFirst()

    add()

    addLast()

    offer()

    將元素插入到列表的尾端

    removeLast()

    移除並返回列表最後一個元素

stack    棧:可以直接將LinkedList當做棧使用,而不是使用已經過時的stack

    LinkedList<T> stack = new LinkedList<T>()

Queue    隊列:LinkedList實現了Queue介面,所以通過LinkedList向上轉型為Queue實現

    Queue<T> queue = new LinkedList<T>()


set    不儲存重複的元素,與collection是完全一樣的介面。

    treeset將元素儲存在紅/黑樹狀結構結構中

    hashset使用的是散列函數


Map    

put()

get()

keySet()返回它的鍵的set

values()返回它的值的collection

entrySet()返回它的索引值對的set


Iterator    迭代器

迭代器的作用是遍曆並選擇序列中的對象,而用戶端程式員不必知道該序列的底層結構。

collections.iterator()得到一個迭代器

iterator.hasNext()

iterator.next()

iterator.remove()在調用此方法之前必須先調用next方法,表示移除最後一個元素。


ListIterator    是Iterator的一個子類,只能用於List類的訪問,可以雙向移動。

list.listIterator()得到一個迭代器

iterator.hasNext()

iterator.next()

iterator.hasPrevious()

iterator.previous()

iterator.remove()

iterator.set()替換訪問過的最後一個元素

iterator.nextIndex()返回迭代器在列表中指向的當前位置的後一個元素的索引

iterator.previous()返回迭代器在列表中指向的當前位置的前一個元素的索引


java集合學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.