演算法(第4版)-1.3.1 API

來源:互聯網
上載者:User

標籤:code   收集   集合類   --   抽象   參數化   ack   for語句   運算式   

總結:本小節介紹了泛型、自動裝箱、迭代、Bag、Queue、Stack以及一個棧用例的經典例子--算術運算式求值。

 

重點:

1. 集合類的抽象資料類型的一個關鍵特性是我們應該可以用它們儲存任意類型的資料。一種特別的Java機制能夠做到這一點,它被稱為泛型,也叫作參數化型別。

 

2. 在處理指派陳述式、方法的參數和算術或邏輯運算式時,Java會自動在參考型別(Character, Integer...)和對應的未經處理資料類型(char, int...)之間進行和轉換。

自動裝箱:int -> Integer

自動拆箱:Integer -> int

 

3. 如果集合是可迭代的,用例用一行語句即可列印出交易的列表:

for (Transaction t : collection) {    StdOut.println(t);}

這種文法叫做foreach語句:可以將for語句看作對於集合中的每個交易t(foreach),執行以下程式碼片段。

很難想象還有比這更加清晰和簡潔的代碼。

 

4. 背包是一種不支援從中刪除元素的集合資料類型--它的目的就是協助用例收集元素并迭代遍曆所有收集到的元素(用例也可以檢查背包是否為空白或者擷取背包中元素的數量)。

使用Bag可以說明元素的處理順序不重要。

 

5. 在應用中使用棧迭代器的一個經典原因是在用集合儲存元素的同時顛倒它們的相對順序。

 

6. Dijkstra的雙棧算術運算式求值演算法

牛!

演算法(第4版)-1.3.1 API

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.