Java基礎--第十七天

來源:互聯網
上載者:User

標籤:

泛型

         一、常見資料結構:棧,隊列,鏈表,數組,樹,圖,堆……

        

                   棧:先進後出--壓棧、彈棧

                   隊列:先進先出

                   數組:儲存多個同一種元素,元素有編號【數組插入/刪除資料】

                            查詢快,增刪慢

                   鏈表:把一些結點通過鏈子連結起來的資料結構。

                            結點:由地址(指標)域和數範圍組成

                            增刪快,查詢慢

         二、List三個子類特點

                   安全執行緒(同步)【效率降低】:

                   ArrayList類:底層資料結構是數組,查詢快,增刪慢,不安全

                   Vector:底層資料結構是數組,查詢快,增刪慢

                            安全執行緒,效率低

                   LinkedList:底層資料結構是鏈表,查詢慢,增刪快;

                            線程不安全,效率高

         三、Vector特有功能

                   public void addElement(Object obj)---add

                   public Object elementAt(int index)---get

                   public Enumeration elements()----Iterator[hasNext   next]

                   public int size()

         四、LinkedList特有功能

           添加

                   void addFirst(E e)

                   void addLast(E e)

           擷取

                   Object getFirst()

                   Object getLast()

           刪除

                   Object removeFirst()

                   Object removeLast()

【類比題】通過LinkedList類比棧結構---封裝

         要類比的對象特點

 

         五、泛型

                   任意的類型,是一種把明確資料類型的工作放在了建立對象或者調用方法時候進行的特殊類型。

                   模仿數組解決

                   泛型特點:

                            A:解決黃色警告線問題;

                            B:把運行期間的類型轉換異常提前到編譯期間;

                            C:最佳化程式設計

                   用於限定儲存資料類型一致問題,資料類型後面

 

         六、增強for迴圈

                   格式

                   作用

                            增強for和迭代器一般只選一種,增強for是來替代迭代器的

                   注意:增強for是用來替代迭代器的,不能用集合對象對集合對象進行修改

                   泛型類:

                            把泛型定義在類上。

                   泛型方法:

                            泛型定義在方法上

                   泛型介面

                            執行個體:String泛型中追加int型資料

         

 

Day16總結

1:常見的資料結構

      (1)提升等級:資料結構+演算法+UML+設計模式

      (2)棧,隊列,數組,鏈表

           棧:先進後出

           隊列:先進先出

           數組:查詢快,增刪慢

           鏈表:查詢慢,增刪快

 

2:List的三個兒子

      (1)List的三個兒子特點:

           List

                 |--ArrayList

                      底層資料結構是數組,查詢快,增刪慢

                      線程不安全,效率高

                 |--Vector

                      底層資料結構是數組,查詢快,增刪慢

                      安全執行緒,效率低

                 |--LinkedList

                      底層資料結構是鏈表,查詢慢,增刪快

                      線程不安全,效率高

 

      (2)根據需求使用具體對象:

           是否要安全:

                 是:Vector

                 否:ArrayList,LinkedList

                      查詢多:ArrayList

                      增刪多:LinkedList

 

           不清楚時,用ArrayList。

 

(3)ArrayList

           重寫equqls三個步驟

                 1. 判斷是否為同一個對象

                 2. 判斷是否為該類的對象

                 3. 向下轉型,然後根據需求比較成員變數

      (4)Vector     C++中依舊在用  STL

           有自己的特殊功能。

           但是不用,被新功能給替代了。

 

      (5)LinkedList(儲存字串和自訂對象)

           有自己的特殊功能。可以很方便的操作頭和尾。

 

      (6)案例:(今天作業之一)

           A:ArrayList儲存字串並去除重複值

           B:ArrayList儲存自訂對象並去除重複值

                 需求:我們認為同姓名和同年齡的人即為同一個人。

           C:用LinkedList類比棧資料結構

 

3:泛型

      (1)泛型是一種把明確類型的工作放在了建立對象或者調用方法時候才去明確的特殊的類型。

      (2)格式:

           <資料類型>

      (3)好處:

           A:解決了黃色警告線問題

           B:把運行期間的轉換異常給提前到了編譯期間

           C:最佳化了程式設計,不需要做強制類型轉換了

 

      (4)泛型的前世今生

           A:泛型類

           B:泛型方法

           C:泛型介面

 

      (5)泛型的使用:

           看API中的類或者介面,其後是否跟有<>,如果有,就是泛型的應用。

           一般在集合中用。

 

4:增強for迴圈

      (1)格式:

           for(數組或者Collection集合的元素類型 變數 : 數組或者Collection集合的對象)

           {

                 直接使用變數即可。

           }

      (2)好處:

           方便了數組和Collection集合的遍曆。

      (3)注意(注意):

           A:增強for是用來替代迭代器的。

           B:不要在用增強for遍曆集合的時候,用集合對集合本身進行修改。

(4)遍曆集合三種方式

           迭代器

           普通for+get

           增強for(工作時候用)

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.