資料結構的一些語法整理

閱讀時間約 3 分鐘

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

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<>();

    dab戴伯
    dab戴伯
    留言0
    查看全部
    發表第一個留言支持創作者!
    dab戴伯 的其他內容
    DHCP與ARP流程
    閱讀時間約 1 分鐘
    Android 架構概要
    閱讀時間約 2 分鐘
    Android 進程與線程整理
    閱讀時間約 7 分鐘
    Java物件導向概念
    閱讀時間約 1 分鐘
    你可能也想看
    創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
    Thumbnail
    avatar
    黑貓老師
    2024-06-29
    防曬產品係數測試報告彙整(2024年)從2014年起,自己對於市售防曬產品的效能產生了濃厚的興趣。因為當時候發現不少產品的防曬係數其實標示是有問題的,像是原本應該是人體測試的SPF與PA數值,實際上沒有做,只用機器測試的數據來充當,但這兩者卻有很大的差異。像是防曬係數其實有強度、廣度與平均度三個面向需要一起判斷,但多數廠商並沒有完整標示
    Thumbnail
    avatar
    邱品齊皮膚科醫師
    2023-04-27
    資料結構實作: Implement Trie 前綴樹Leetcode #208_精選75題題目敘述 題目已經給定一個Trie前綴樹的類別和相關的函式介面interface, 要求我們把功能實作出來。 Trie() 建構子,初始化一個空的Trie。 void insert(String word) 插入一個新的單字word到Trie裡面。 boolean search(Strin
    Thumbnail
    avatar
    小松鼠
    2024-02-27
    資料結構實作: Implement Trie 前綴樹Leetcode #208_精選75題題目敘述 題目已經給定一個Trie前綴樹的類別和相關的函式介面interface, 要求我們把功能實作出來。 Trie() 建構子,初始化一個空的Trie。 void insert(String word) 插入一個新的單字word到Trie裡面。 boolean search(Strin
    Thumbnail
    avatar
    小松鼠
    2024-02-27
    資料結構經典 在二元搜尋樹BST中搜索目標值_Leetcode #700_Leetcode精選75題題目敘述 題目會給我們一棵二元搜索樹的根結點root,還有一個指定的目標值val。 要求我們找出在樹中對應到目標值val的節點,假如找不到,請回傳null( null在Python就是None)。 題目的原文敘述 測試範例 Example 1: Input: root = [4,2,
    Thumbnail
    avatar
    小松鼠
    2024-01-30
    系統設計 設計一個平均O(1)的插入、刪除、隨機選擇元素的資料結構 Leetcode #380題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
    Thumbnail
    avatar
    小松鼠
    2024-01-16
    系統設計 設計一個平均O(1)的插入、刪除、隨機選擇元素的資料結構 Leetcode #380題目敘述 題目會給我們一組定義好的界面和需求,要求我們設計一個資料結構,可以滿足平均O(1)的插入元素、刪除元素、隨機取得元素的操作。 RandomizedSet() 類別建構子 bool insert(int val) 插入元素的function界面 bool remove(int val
    Thumbnail
    avatar
    小松鼠
    2024-01-16
    【💊 Python的解憂錦囊】如何將@dataclass的資料結構轉成csv並輸出 我們在「【💊 Python的解憂錦囊】如何將dict轉成json並儲存」有介紹過如何將dict型態的資料轉換成json,除了json之外, 另一個耳熟能詳的資料交換格式就是csv了, 我們常常會將csv讀進來, 並使用預先設計的@dataclass來存放, 如此一來實際運行時, 更能夠貼近於我
    Thumbnail
    avatar
    阿Han
    2023-10-21
    【💊 Python的解憂錦囊】如何將@dataclass的資料結構轉成csv並輸出 我們在「【💊 Python的解憂錦囊】如何將dict轉成json並儲存」有介紹過如何將dict型態的資料轉換成json,除了json之外, 另一個耳熟能詳的資料交換格式就是csv了, 我們常常會將csv讀進來, 並使用預先設計的@dataclass來存放, 如此一來實際運行時, 更能夠貼近於我
    Thumbnail
    avatar
    阿Han
    2023-10-21
    資料結構實作題 環狀佇列 Design Circular Queue Leetcode #622題目敘述 這題是一個經典的資料結構實作題,要求我們實作指定長度為k的環狀佇列。 請記得,佇列最重要的特質就是先進先出 First In First Out 又簡稱為 FIFO
    Thumbnail
    avatar
    小松鼠
    2023-10-06
    探索 Golang 中的結構體:如何有效地組織複雜資料👨‍💻簡介 在程式開發的世界中,我們經常需要處理各式各樣的資料,可能是一個人的個人資訊,也可能是一個商品的詳細訊息。當我們面對這麼多的資料時,如何將它們有系統地整理起來,讓我們能夠輕鬆地找到所需,便成了一個重要的課題。這時,結構體的概念就像是一道曙光,為我們提供了一個非常有力的工具。 結
    Thumbnail
    avatar
    wang alan
    2023-08-30
    台灣人口老化速度堪比磁浮列車!台灣的人口結構與變化趨勢 | 資料台灣DATAiWAN你知道台灣人口什麼時候開始減少嗎?什麼時候會剩不到2,000萬人呢?虎年、龍年的影響是什麼?台灣老化的速度又多快?一起來看看吧!
    Thumbnail
    avatar
    李政旺
    2023-07-30