2022-11-01|閱讀時間 ‧ 約 4 分鐘

資料結構的一些語法整理

    主要在使用這兩種類型時常常會忘記,所以簡單整理一下內容

    Stack

    Stack<Character> stack = new stack<>();

    屬於LIFO的特性,也就是先進後出的概念,因此所有動作通常是發生在top,可以想像成放球的瓶子,只有頂端一個開口可以拿最上面的那顆球。

    可以使用的函數分別為 push(放球進去)、pop(移除最頂端的球)、peek(取最上面的球)、empty(檢查是否為空)、 search(搜尋特定的球,回傳距離頂端多遠)。

    Queue

    Queue<String> queue = new LinkedList<String>();

    與Stack不同的點在屬於先進先出(FIFO),可以想像成單一方向的排隊,只能從後端進入,前端出去。像是LinkedList類即是實現Queue的一種方式。

    常用方法有offer(添加元素)、poll(返回第一個元素,並從隊列中刪除)、element(返回第一個元素)、peek(返回第一個元素)。

    程式碼宣告:

    StringBuffer與StringBuulder類別

    StringBuffer aBuffer = new StringBuffer(“aacc”);

    使用時機:需要對String類進行不斷修改的話。

    StringBuilder相較於StringBuffer來說速度較快,但若是有Thread安全問題,建議使用StringBuffer類。

    程式碼:

    aBuffer.append(“Buffer2”); //增加字符進buffer

    reverse()// 將字符串反轉

    delete(int start, int end) //移除序列中的字符

    insert(int offset, int i) //在第offerset的位置替換為i的字符

    replace(int start, int end, String str) //將字符串的內容替換

    HashSet

    HashSet<String> sites = new HashSet<String>();

    HashSet是實作Set介面的物件,而在Set裡面的物件都是唯一的。

    而他是由HashMap實現,因此並沒有排列順序。

    add(“abc”) //加入元素

    Iterator it = hashset.iterator(); //iterator用來處理任何的collection類別

    while(it.hasNext()) { …} //將hashSet進行loop

    ArrayList

    //可以不用宣告大小,也可不宣告型態

    ArrayList<> AL = new ArrayList(); //不宣告型態

    ArrayList<String> AL = new ArrayList<String>();

    //String型態(另外還Integer型態)

    利用add()加入元素,get取得元素,remove刪除元素,set(1,”b”)取代元素,index(“ccc”)查找元素回傳index,clear清除元素。

    相較之下,List單純為ArrayList的一個街口,但只能使用List的方法,實例話要採用ArrayList。

    List<String> list = new ArrayList<>();

    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.